2011-11-16 21 views
8

मैं Vagrant के साथ सक्षम वीएम का उपयोग कर एक स्थानीय Django देव पर्यावरण स्थापित करने की कोशिश कर रहा हूं, लेकिन मुझे यकीन नहीं है कि इसके बारे में जाने का सबसे अच्छा तरीका क्या है।आपने अपने Django dev वातावरण को कैसे सेटअप किया?

मैंने उत्पादन सर्वर से Django फ़ाइलों के लिए git clone किया और उत्पादन सर्वर के मेरे मॉड्यूल पर सभी मॉड्यूल स्थापित किए। मैं अपने स्थानीय वीएम पर डेटाबेस स्थापित करने से बचना चाहता था लेकिन सत्रों के साथ कुछ समस्याओं में भाग गया। स्थानीय मशीन SESSION_COOKIE_DOMAIN='localhost' का उपयोग कर रही है और उत्पादन SESSION_COOKIE_DOMAIN='.mydomain.com' का उपयोग कर रहा है ताकि कुछ भ्रम पैदा हो सके।

उल्लेख नहीं है कि मेरे देव पर्यावरण पर सेटिंग.py पर मुझे डेटाबेस के सार्वजनिक आईपी पते (इस प्रकार सुरक्षा पर एक छेद पोकिंग) पर इंगित करने के लिए आईपी बदलना पड़ा, जबकि मेरी उत्पादन सेटिंग्स.py का उपयोग कर रहा है स्थानीय आईपी इसलिए मैं विभिन्न सेटिंग्स.py फाइलों का उपयोग कर समाप्त हो गया।

मैं नई विधियों के साथ प्रयोग करना जारी रख सकता हूं लेकिन मुझे वास्तव में परियोजना के साथ जाना होगा और मुझे पूरा यकीन है कि कुछ लोगों ने पहले ही यह पता लगाया है।

तो आपने अपना Django देव पर्यावरण कैसे स्थापित किया?

+0

स्टैक ओवरव्लो पर प्रश्न निश्चित रूप से उत्तरदायी होना चाहिए। Django पर्यावरण को स्थापित करने के कई तरीके हैं और इनमें से अधिकतर दिए गए आवेदन की व्यक्तिगत आवश्यकताओं की व्यक्तिगत वरीयता के लिए उबलते हैं। यदि आप कुछ विचार प्राप्त करना चाहते हैं, तो Google इसके लिए जगह है। –

+0

@ क्रिस प्रैट मैं आपके इनपुट की सराहना करता हूं। – avatar

+0

इस प्रश्न को कई बार पहले से ही पूछा गया है। Http://stackoverflow.com/questions/1626326/how-to-manage-local-vs-production-settings-in-django और http://stackoverflow.com/questions/88259/how-do-you-configure देखें -django- के लिए सरल-विकास-और-तैनाती –

उत्तर

1

कुछ Django Apps का है कि मैं इस का प्रबंधन करने के देखा है रहे हैं, लेकिन मैं हमेशा अपने settings.py में निम्नलिखित पसंद के रूप में विभिन्न कॉन्फ़िगरेशन की संख्या आम तौर पर कम से कम कर रहे हैं

SITE_TYPE = environ.get('SITE_TYPE', 'DEV') 

if SITE_TYPE == 'LIVE': 
    DEBUG = False 
    DEFAULT_HOST = '' 
else: 
    DEBUG = True 
    DEFAULT_HOST = '50.56.82.194' 
    EMAIL_HOST = DEFAULT_HOST 
+0

क्या आपके पास एक अलग dev डेटाबेस है जो उत्पादन डीबी के समान है या आप अपने डीजेगो देव कोड को उत्पादन डीबी पर इंगित करते हैं? इस विषय पर कुछ प्रकाश डालने के लिए धन्यवाद। – avatar

2

मैं एक सार्वजनिक रेपो है README.md से

https://github.com/FlipperPA/djangovagrant

निर्देश::

Django/पायथन/एम GitHub उपलब्ध यहाँ पर ySQL

यह Django विकास के लिए एक वाग्रेंट परियोजना है।

यह अभी तक बर्कशेल्फ़ या लाइब्रेरियन का समर्थन नहीं करता है; सभी आवश्यक रेपो 'कुकबुक' में शामिल हैं।

किसी और चीज की, सभी प्लेटफार्मों:

Virtualbox https://www.virtualbox.org/wiki/Downloads Vagrant http://downloads.vagrantup.com/

किसी और चीज की, केवल Windows:

Git-बैश माणिक rvm

काफी आसान इसे चलाने करने के लिए:

vagrant up 
vagrant ssh djangovm 

** (नोट: आप सुपर उपयोगकर्ता आवारा के रूप में Virtualbox वीएम में अब कर रहे हैं)

sudo apt-get install python-pip 

** (नोट: एक अजगर पैकेज प्रबंधक PIP है)

sudo apt-get install python-mysqldb 
sudo pip install django 

एक Django परियोजना शुरू:

django-admin.py startproject django_project 
cd django_project 
python manage.py runserver [::]:8000 

वीएम पोर्ट अग्रेषण का उपयोग करने के लिए कॉन्फ़िगर किया गया है।

http://localhost:8001/ 

नई Django के लिए: यदि सब कुछ सही चला गया, आप अपने कंप्यूटर पर ब्राउज़र इस यूआरएल पर आभासी मशीन चल माध्यम से चल रहे सर्वर उपयोग करने में सक्षम होना चाहिए? अगला कदम? मैं अत्यधिक की सिफारिश: http://www.tangowithdjango.com/ और अधिक उन्नत विषयों के लिए, Django के दो scoops की जाँच: http://twoscoopspress.org/

+0

djangobook के सामने वाले पृष्ठ पर चेतावनी को ध्यान में रखते हुए, आप इसकी सिफारिश क्यों कर रहे हैं? – pydanny

+0

हाय पाइडनी, मैंने अपने गिटहब में रेपो को डीजेगो के साथ टैंगो को इंगित करने के लिए, और अधिक उन्नत विषयों के लिए Django पुस्तक के अपने उत्कृष्ट दो स्कूप्स को अपडेट किया है। सर उठाने के लिए धन्यवाद। – FlipperPA

+0

@FlipperPA: क्या यह परिवर्तनों का पता लगाएगा और 'django सर्वर' को फिर से लोड करेगा यदि मैं अपनी अतिथि मशीन पर किसी भी' .py' फ़ाइलों में परिवर्तन करता हूं? मैं यह कोशिश कर रहा हूं और यह django सर्वर को पुनः लोड नहीं करता है। –

0

मैं this repository सिफारिश कर सकते हैं।

आप Django परियोजनाओं का समर्थन करने के लिए इसे संशोधित कर सकते हैं।

Vagrantfile अपडेट: भंडार का पता ([email protected]:czerasz/sample-django-app.git)

#!/bin/bash 

local_user=vagrant 

if [ ! -n "$(grep "^bitbucket.org " /home/$local_user/.ssh/known_hosts)" ]; then 
    ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts 2>/dev/null; 
fi 

if [[ ! -d "/home/$local_user/app" ]]; then 
    git clone [email protected]:czerasz/sample-django-app.git /home/$local_user/app 

    chown -R $local_user:$local_user /home/$local_user/app 

    su - $local_user -c "source /usr/local/bin/virtualenvwrapper.sh && mkvirtualenv sample-django-app-env && workon sample-django-app-env && pip install -r /home/$local_user/app/requirements.txt" 
fi 

बदलें और यह भी सुनिश्चित करें कि आप जड़ में एक requirements.txt बनाती हैं:

config.vm.define "web1", primary: true do |web1_config| 
    web1_config.ssh.forward_agent = true 

    # Create a private network, which allows host-only access to the machine 
    web1_config.vm.network "private_network", ip: "192.168.11.10" 
    web1_config.vm.hostname = "web1.#{domain}" 

    web1_config.vm.provision "shell", path: "provisioners/shell/python.setup.sh" 
    web1_config.vm.provision "shell", path: "provisioners/shell/application.setup.sh" 
    end 

तो निम्न सामग्री के साथ एक provisioners/shell/application.setup.sh फ़ाइल जोड़ने आपके गिट भंडार का। vagrant up चलाएं। एक PoestgreSQL डेटाबेस


के साथ अपने Django परियोजना

  • db1 साथ

    • web1 आपको अभी भी समस्या है, तो अपने Vagrantfile के लिए निम्न में जोड़ते हैं:

      Vagrant दो मशीनों शुरू कर देंगे:

      web1_config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/bitbucket' ] 
      

      और (जहां vagrant चलाने मशीन) अपने मेजबान पर इस आदेश पर अमल:

      ssh-add ~/.ssh/bitbucket 
      

      ~/.ssh/bitbucket जो आप bitbucket के लिए उपयोग ssh निजी कुंजी है। यह ~/.ssh/id_rsa हो सकता है या आप इसे कॉन्फ़िगर करने के तरीके के आधार पर कुछ अलग हो सकते हैं।

  • संबंधित मुद्दे