Как вы настроили свою среду разработки Django? - PullRequest
8 голосов
/ 16 ноября 2011

Я пытаюсь настроить локальную среду разработки Django, используя виртуальные машины, включенные с Vagrant , но я не уверен, как лучше это сделать.

Я сделал git clone для файлов Django с рабочего сервера и установки всех модулей, которые производственный сервер имеет на моей локальной виртуальной машине.Я хотел избежать установки базы данных на моей локальной виртуальной машине, но столкнулся с некоторыми проблемами с сессиями.Локальный компьютер использует SESSION_COOKIE_DOMAIN='localhost', а производство использует SESSION_COOKIE_DOMAIN='.mydomain.com', что создает некоторую путаницу.

Не говоря уже о том, что в файле setting.py в моей среде разработки мне пришлось изменить IP-адреса, чтобы они указывали наобщедоступный IP-адрес базы данных (таким образом, пробивая брешь в безопасности), в то время как мой производственный файл settings.py использует локальные IP-адреса, поэтому я использовал разные файлы settings.py.

Я могу продолжать экспериментировать с новыми методамино я действительно должен начать работу над проектом, и я уверен, что некоторые люди уже поняли это.

Итак, как вы настроили среду разработки Django?

Ответы [ 3 ]

2 голосов
/ 18 июля 2013

У меня есть публичное репо на GitHub, доступное здесь:

https://github.com/FlipperPA/djangovagrant

Инструкции от README.md:

Django / Python / MySQL

Это проект Vagrant для разработки Django.

Это еще не поддерживает Berkshelf или библиотекарь;все необходимые репозитории включены в «поваренные книги».

Необходимые условия, все платформы:

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

Предварительные требования, только для Windows:

git-bash ruby ​​rvm

Довольно легко запустить его:

vagrant up
vagrant ssh djangovm

** (Примечание: вы сейчас находитесь на виртуальной машине Virtualbox как суперпользовательский бродяга)

sudo apt-get install python-pip

** (Примечание: PIP - это менеджер пакетов Python)

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/ Для более сложных тем, проверьте Two Scoops of Django: http://twoscoopspress.org/

1 голос
/ 16 ноября 2011

есть несколько приложений django, которые я видел, чтобы справиться с этим, но я всегда предпочитаю следующее в моем файле 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 голосов
/ 02 апреля 2015

Я могу порекомендовать этот репозиторий .

Вы можете изменить его для поддержки проектов Django.

Vagrantfile обновления:

  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 со следующим содержимым:

#!/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 git@bitbucket.org: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

Измените адрес хранилища (git@bitbucket.org:czerasz/sample-django-app.git) и убедитесь, что в корневом каталоге есть requirements.txtвашего Git хранилища.Запустите vagrant up.

Vagrant запустит две машины:

  • web1 с вашим проектом django
  • db1 с базой данных PoestgreSQL

Если у вас все еще есть проблемы, добавьте к вашему Vagrantfile следующее:

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

и выполните эту команду на вашем хосте (машине, на которой вы запускаете vagrant):

ssh-add ~/.ssh/bitbucket

~/.ssh/bitbucket - это закрытый ключ ssh, который вы используете для bitbucket.Это может быть ~/.ssh/id_rsa или что-то другое, в зависимости от того, как вы его настроили.

...