Начиная проект Джанго
Django - это высокоуровневый веб-фреймворк Python, который способствует быстрой разработке и чистому, прагматичному дизайну.
В этом руководстве мы ответим на вопрос“How do I setup a Django (1.5, 1.6, 1.7, or 1.8) project from scratch?” Другими словами, вы узнаете, как установить Django и как настроить структуру проекта Django.
Вот как вы можете максимально использовать этот урок:
-
Прочитайте разделы «Введение» и «Настройка».
-
Затем выберите свой яд - Django 1.5, 1.6, 1.7, 1.8 - чтобы настроить проект Django.
-
После начальной настройки проекта перейдите в раздел «Создание приложения», чтобы настроить удобное и простое приложение.
-
Затем ознакомьтесь с кратким рабочим процессом для краткого руководства по проекту Django.
Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF), который показывает вам советы и приемы, а также общие ловушки, которых следует избегать при создании веб-приложений Python + Django.
Update: мы указали доменrealdjango.com на это сообщение, чтобы вы могли легко найти его снова.
Вступление
Это руководство отвечает на вопрос:“How do I setup a Django Project from scratch?” Поскольку вы читаете это, я предполагаю (эээ, надеюсь) вы знаете, что Django - это веб-фреймворк Python, созданный для быстрой веб-разработки. Мы проведем настройку, подробно расскажем об основных процедурах установки Django и необходимых зависимостях, а также о нескольких дополнительных библиотеках / расширениях, которые помогут вам начать разработку как можно скорее.
Мы также рассмотрим базовый рабочий процесс, который можно использовать, как только будет настроена структура вашего проекта.
Наконец, обязательно ознакомьтесь со следующими видео:
Хотя эти видео относятся к Django 1.5, они помогут вам понять основные рабочие процессы для Django 1.6, 1.7 и 1.8.
Требования к учебнику
Вы должны иметь некоторый опыт работы с Python и знать основные команды Unix bash. Если вы никогда раньше не использовали командную строку, ознакомьтесь со следующими командами:pwd,cd,ls,rm иmkdir.
Для простоты во всех примерах используется приглашение в стиле Unix:
$ python manage.py runserver
(Знак доллара не является частью команды.)
Эквивалент Windows:
C:\> python manage.py runserver
Настроить
Что вам понадобится для базовой среды разработки Django:
-
Python 2.7.x или 3.4.x
-
easy_install и Pip
-
Git
-
virtualenv
-
Джанго
-
База данных (SQLite, MySQL, PostgreSQL, MongoDB и т. Д.)
-
Юг (для версий Django до 1.7)
-
Текстовый редактор (Sublime, vim, Komodo, gedit)
Note: в этом руководстве используется Python версии 2.7.8.
питон
Среды Unix поставляются с Python. Чтобы проверить версию Python, выполните команду:
$ python -V
Python 2.7.8
$ python3 -V
Python 3.4.2
Если у вас уже есть версия 2.7.x, перейдите к следующему шагу. Если нет,download и установите последнюю версию 2.7.x для вашей операционной системы.
easy_install и pip
И easy_install, и pip - это менеджеры пакетов Python, которые упрощаютmuch установку и обновление пакетов Python (и зависимостей пакетов).
Чтобы загрузить easy_install, перейдите вPython Package Index (PyPI). Вам необходимо скачать setuptools, который включает в себя easy_install. Загрузите пакет egg (.egg), затем установите его прямо из файла.
Pip, тем временем, является оберткой, которая опирается на easy_install, поэтому перед установкой pip необходимо сначала установить и запустить easy_install. После установки easy_install выполните следующую команду для установки pip:
$ easy_install pip
Git
Дляversion control мы будем использовать git. Вы можете проверить текущую версию, если у вас уже установлен git, с помощью следующей команды:
$ git --version
git version 2.3.0
Если у вас не установлена версия выше 1.7.x, пожалуйста,download последняя версия.
MySQL
SQLite поставляется с Python, и в большинстве учебных пособий используется SQLite, поэтому давайте немного побудим себя и вместо этого будем использовать MySQL.
Сначала установите MySQL изhere.
Затем запустите сервер, а затем настройте новую базу данных и пользователя:
$ mysql.server start
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> quit
Bye
virtualenv
Обычной практикой является использованиеvirtualenv (виртуальная среда) для ваших проектов Python для создания автономных сред разработки (также называемых «песочницами»). Цель virtualenv состоит в том, чтобы предотвратить перепутывание разных версий библиотек / пакетов.
Подумайте о virtualenv как о полностью изолированном контейнере на вашем компьютере, где вы можете использовать любую версию Python и устанавливать библиотеки / пакеты, и это не повлияет ни на что вне этого контейнера. Это похоже на изолированную звукоизолированную комнату в вашем доме, где вы можете кричать так громко, как хотите, о чем угодно, и никто за пределами этой комнаты не слышит этого.
Установите virtualenv с помощью следующей команды:
$ pip install virtualenv
Джанго 1,5
Впервые выпущенный 26 февраля 2013 года, наиболее заметные новые функции включают в себя:
-
Configurable User Model: вместо того, чтобы использовать определение Django для «пользователя», теперь вы можете использовать свою собственную модель пользователя, создавая настраиваемые поля, например ссылки на социальные профили, дату рождения, любимый цвет и т. д.
-
Python 3 Support: Django предлагает пока не использовать Python 3 в производственной среде, так как поддержка все еще является «экспериментальной». Тем не менее, эта особенность огромна для сообщества Python в целом, помогая приложить еще большее давление к миражу в значительно улучшенном Python 3.
Хотите прочитать полные заметки о выпуске? Ознакомьтесь с официальными изменениями Djangohere.
Последний выпуск вышел 2 января 2015 г .:v1.5.12
Посмотрите сопроводительные видео к этому руководству:
Django Установить
Настройте свою структуру разработки:
$ mkdir django15_project
$ cd django15_project
$ virtualenv env
$ source env/bin/activate
Вы должны увидеть(env)
перед приглашением,(env)$
, что означает, что вы работаете в виртуальном окружении "env".
Чтобы выйти из virtualenv, введите следующую команду:
$ deactivate
Затем возобновите работу, когда будете снова готовы к работе.
Давайте установим Django:
$ pip install django==1.5.12
Вы можете проверить версию, выполнив следующие команды:
>>>
$ python
>>> import django
>>> django.get_version()
'1.5.12'
Настройка проекта
Настроить проект Django
$ django-admin.py startproject my_django15_project
Это создает новый каталог с именем «my_django15_project» с базовым каталогом и структурами Django:
├── manage.py └── my_django15_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
Контроль версий
Прежде чем приступить к разработке, поставьте свой проект под контроль версий. Сначала добавьте новый файл с именем.gitignore в каталог «django15_project», который используется для игнорирования добавления ненужных файлов в репозиторий git.
Добавьте следующее в файл:
env
*.DS_Store
*.pyc
__pycache__
Теперь инициализируйте (или создайте) новое репозиторий Git и добавьте свои изменения в промежуточное, а затем в локальное репо.
$ git init
$ git add -A
$ git commit -am "initial commit"
Если вы используете BitBucket или GitHub (настоятельно рекомендуется), НАЖМИТЕ свои файлы в центральное хранилище.
Настройки базы данных
Сначала установите MySQL-python, который является соединителем базы данных для Python:
$ pip install MySQL-python
Отредактируйте файлsettings.py в каталоге «my_django15_project», чтобы добавить следующую информацию о вашей базе данных, которую вы установили ранее:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
Создайте таблицы базы данных и настройте суперпользователя:
$ cd my_django15_project
$ python manage.py syncdb
Запустите сервер разработки:
$ python manage.py runserver
Вы должны увидеть следующий вывод, если Django и база данных настроены правильно:
Validating models...
0 errors found
September 7, 2014 - 23:36:02
Django version 1.5, using settings 'my_django15_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Наведите браузер наhttp://127.0.0.1:8000, и вы увидите сообщение Django: «Это сработало!» страница.
Вернувшись в свой терминал, убейте сервер, нажав CONTROL-C.
юг
South используется для управления изменениями в таблицах базы данных. По мере роста вашего приложения, и вам нужно, например, добавить поле в конкретную таблицу, вы можете просто внести изменения в базу данных путем миграции с South. Это облегчает жизньmuch.
Установите Юг:
$ pip install south
заморозка
Теперь, когда все ваши библиотеки установлены, используйте следующую команду, чтобы создать запись об установленных библиотеках в каталоге «my_django15_project»:
$ pip freeze > requirements.txt
Этотcommand невероятно полезен, если вам нужно воссоздать свой проект с нуля и вам нужно знать точные библиотеки / версии, которые вам нужно установить.
Внесите свои новые изменения в Git.
Настройте свое приложение Django
Создайте свое новое приложение:
$ python manage.py startapp myapp
Структура вашего проекта теперь должна выглядеть так:
├── manage.py ├── my_django15_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── myapp ├── __init__.py ├── models.py ├── tests.py └── views.py
Обновите INSTALLED_APPS в вашем файлеsettings.py:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'myapp',
'south',
)
Здесь мы включили администратора,'django.contrib.admin'
, и добавили приложения,'myapp'
и'south'
.
Откройтеurls.py и раскомментируйте эти три строки:
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
Синхронизируйте вашу базу данных снова:
$ python manage.py syncdb
Создайте файл миграции базы данных с помощью South:
$ python manage.py schemamigration myapp --initial
Перенос изменений базы данных:
$ python manage.py migrate myapp
Запустите сервер (python manage.py runserver
), а затем перейдите кhttp://127.0.0.1:8000/admin. Введите имя пользователя и пароль вашего суперпользователя для входа на страницу администратора.
Посвятить Git. Например:
$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin"
Используя git, правильный путь
NOTE: Этот раздел достаточно продвинутый и полностью необязательный. Если вы впервые настраиваете Django, вы можете пропустить этот раздел.
Если вы не используете GitHub или Bitbucket в качестве центрального репо, вы должны создать отдельную ветку вашего локального репо для разработки.
Сначала создайте новый каталог с именем «dev» в вашем каталоге «django15_project», перейдите во вновь созданный каталог, а затем клонируйте (скопируйте) весь ваш проект Django:
$ git clone /path/to/your/project/
Например:
/Users/michaelherman/desktop/django15_project
Эта команда создает точную копию вашего репо, которая включает в себя все ваши коммиты и ветки. Всегда развивайтесь из этого каталога, создавая отдельные ветви для каждого важного изменения в вашем проекте:
$ git branch
Следующий переключатель в эту ветку:
$ git checkout
Вы всегда можете проверить, какие ветви доступны с помощью этой команды:
$ git branch
После того, как вы закончите разработку, внесите свои изменения:
$ git add -A
$ git commit -am "some message"
Теперь вы хотите объединить ваши изменения с основной веткой:
$ git checkout master
$ git merge
Вы можете отправить свои изменения в GitHub или Bitbucket, если вы используете любую из этих услуг. Наконец, вернитесь к основной рабочей папке и вытяните изменения:
$ git pull
Пример:
(env)$ cd dev
(env)$ cd django15_project
(env)$ git branch 06212013
(env)$ git checkout 06212013
(env)$ git add -A
(env)$ git commit -am "description of changes made"
(env)$ git checkout master
(env)$ git merge 06212013
(env)$ cd ..
(env)$ git pull /Users/michaelherman/desktop/django15_project/dev/django15_project
Workflow
Теперь, когда ваше приложение настроено, выполняйте любой из этих простых рабочих процессов каждый раз, когда вы хотите внести изменения в свое приложение:
Основные:
-
Перейдите к вашему проекту
-
Активировать virtualenv
-
развивать
-
Зафиксируйте изменения
-
развертывание
-
Деактивировать virtualenv
Дополнительно:
-
Перейдите к вашему проекту
-
Активировать virtualenv
-
Создать и оформить новую ветку git
-
развивать
-
Зафиксируйте изменения
-
Объедините новую ветку с вашей основной веткой
-
Вытащить изменения в производственную папку
-
развертывание
-
Деактивировать virtualenv
Ура! Любые вопросы? Предложения?
Давайте создадим базовыйapp!
Джанго 1.6
Впервые выпущенный 6 ноября 2013 года, наиболее заметные новые функции включают в себя:
-
Python 3 Support: Поддержка Python 3 теперь официальная, без каких-либо ограничений, поэтому вы можете запустить ее в производственной среде.
-
Improved Database Transaction Management: API компактнее, чище и проще, что значительно упрощает откат и обработку ошибок.
-
Новый Test Runner
-
Постоянные подключения к базе данных
Хотите прочитать полные заметки о выпуске? Ознакомьтесь с официальными изменениями Djangohere.
Последний выпуск вышел 18 марта 2015 г .:v1.6.11
Django Установить
Настройте свою структуру разработки:
$ mkdir django16_project
$ cd django16_project
$ virtualenv env
$ source env/bin/activate
Вы должны увидеть(env)
перед приглашением,(env)$
, что означает, что вы работаете в виртуальном окружении "env".
Чтобы выйти из virtualenv, введите следующую команду:
$ deactivate
Затем возобновите работу, когда будете снова готовы к работе.
С активированным virtualenv установите Django с Pip:
$ pip install django==1.6.11
Вы можете проверить версию, выполнив следующие команды:
>>>
$ python
>>> import django
>>> django.get_version()
'1.6.11'
Настройка проекта
Настроить проект Django
$ django-admin.py startproject my_django16_project
Это создает новый каталог с именем «my_django16_project» с базовым каталогом Django и структурами:
├── manage.py └── my_django16_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
Контроль версий
Прежде чем приступить к разработке, поместите ваш проект под контроль версий. Сначала добавьте файл.gitignore в каталог «django16_project», чтобы предотвратить добавление ненужных файлов в репозиторий git.
Добавьте следующее в файл:
env
*.DS_Store
*.pyc
__pycache__
Теперь инициализируйте (или создайте) новое репозиторий Git и добавьте свои изменения в постановку, а затем в репо.
$ git init
$ git add -A
$ git commit -am "initial"
Если вы используете GitHub, перенесите ваши файлы в центральное хранилище.
Настройки базы данных
Сначала установите MySQL-python, чтобы Python мог взаимодействовать с MySQL:
$ pip install MySQL-python
Отредактируйте файлsettings.py в каталоге my_django16_project:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
Создайте таблицы базы данных и настройте суперпользователя:
$ cd my
$ python manage.py syncdb
Запустите сервер разработки:
$ cd my_django16_project
$ python manage.py runserver
Вы должны увидеть следующий вывод, если пока все хорошо:
Validating models...
0 errors found
September 7, 2014 - 23:36:02
Django version 1.6, using settings 'my_django16_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Перейдите кhttp://127.0.0.1:8000, и вы увидите знакомое голубое сообщение «Это сработало!» страница.
Убейте сервер, нажав CONTROL-C обратно в терминал.
юг
South используется для обработки миграции базы данных - например, для внесения изменений в схему вашей базы данных.
Установите Юг:
$ pip install south
заморозка
Установив зависимости, используйте следующую команду, чтобы создать их запись вместе с их последующими версиями в каталоге «my_django16_project»:
$ pip freeze > requirements.txt
Этотcommand пригодится, когда вам нужно воссоздать проект с нуля. Вы можете просто запуститьpip install -r requirements.txt
, чтобы установить все зависимости вашего проекта.
Внесите свои новые изменения в Git.
Настройте свое приложение Django
Создайте свое новое приложение:
$ python manage.py startapp myapp
Структура вашего проекта теперь должна выглядеть так:
├── manage.py ├── my_django16_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── myapp ├── __init__.py ├── admin.py ├── models.py ├── tests.py └── views.py
Обновите INSTALLED_APPS в вашем файлеsettings.py, чтобы включить Юг, а также ваше новое приложение:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'myapp',
'south',
)
Теперь, как только вы запуститеsyncdb
, Django будет знать какsouth
, так иmyapp
.
Откройтеurls.py и раскомментируйте эти три строки:
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
Синхронизируйте вашу базу данных снова:
$ python manage.py syncdb
Создайте файл миграции базы данных с помощью South:
$ python manage.py schemamigration myapp --initial
Перенос изменений базы данных:
$ python manage.py migrate myapp
Запустите сервер (python manage.py runserver
), а затем перейдите кhttp://127.0.0.1:8000/admin. Введите имя пользователя и пароль вашего суперпользователя для входа на страницу администратора. Это просто проверка работоспособности, чтобы убедиться, что все работает.
Посвятить Git. Например:
$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin, boom"
Все готово. Давайте создадим базовыйapp!
Джанго 1,7
Впервые выпущенный 2 сентября 2014 года, наиболее заметные новые функции включают в себя:
-
Database Migrations: Django теперь имеет встроенную поддержку для внесения изменений в схему базы данных, которая основана на South. Это большое!
-
Улучшенные инструменты проверкиsystem для проверки и проверки ваших проектов
-
Рефакторинг того, как Django идентифицирует и загружает приложения
Хотите прочитать полные заметки о выпуске? Ознакомьтесь с официальными изменениями Djangohere.
Последний выпуск вышел 1 мая 2015 г .:v1.7.8
Django Установить
Настройте структуру разработки:
$ mkdir django17_project
$ cd django17_project
$ virtualenv env
$ source env/bin/activate
Вы должны увидеть(env)
перед приглашением,(env)$
, что указывает на то, что ваш virtualenv активирован.
Чтобы деактивировать virtualenv:
$ deactivate
Затем активируйте, как только вы будете готовы начать разработку снова.
С активированным virtualenv установите Django с Pip:
$ pip install django==1.7.8
Вы можете проверить версию, выполнив следующие команды:
>>>
$ python
>>> import django
>>> django.get_version()
'1.7.8'
>>>
Настройка проекта
Настроить проект Django
$ django-admin.py startproject my_django17_project
Это создает новый каталог с именем «my_django17_project» с базовым каталогом Django и структурами:
├── manage.py └── my_django17_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
Контроль версий
Прежде чем приступить к разработке, поместите ваш проект под контроль версий. Сначала добавьте файл.gitignore в каталог «django17_project», чтобы предотвратить добавление ненужных файлов в репозиторий git.
Добавьте следующее в файл:
env
*.DS_Store
*.pyc
__pycache__
Теперь инициализируйте (или создайте) новое репозиторий Git и добавьте свои изменения в постановку, а затем в репо.
$ git init
$ git add -A
$ git commit -am "initial"
Если вы используете GitHub, перенесите ваши файлы в центральное хранилище.
Настройки базы данных
Сначала установите MySQL-python, чтобы Python мог общаться с MySQL:
$ pip install MySQL-python
Отредактируйтеsettings.py в каталоге «my_django17_project»:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
Создайте таблицы базы данных и настройте суперпользователя:
$ cd my_django17_project
$ python manage.py migrate
$ python manage.py createsuperuser
Запустите сервер разработки:
$ python manage.py runserver
Вы должны увидеть следующий вывод, если пока все хорошо:
Performing system checks...
System check identified no issues (0 silenced).
September 07, 2014 - 19:51:01
Django version 1.7, using settings 'my_django17_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Перейдите кhttp://127.0.0.1:8000, и вы увидите знакомое голубое сообщение «Это сработало!» страница.
Убейте сервер, нажав CONTROL-C обратно в терминал.
заморозка
Установив зависимости, используйте следующую команду, чтобы создать их запись вместе с их последующими версиями в каталоге «my_django17_project»:
$ pip freeze > requirements.txt
Этотcommand пригодится, когда вам нужно воссоздать проект с нуля. Вы можете просто запуститьpip install -r requirements.txt
, чтобы установить все зависимости вашего проекта.
Внесите свои новые изменения в Git.
Настройте свое приложение Django
Создайте свое новое приложение:
$ python manage.py startapp myapp
Структура вашего проекта теперь должна выглядеть так:
├── manage.py ├── my_django17_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── myapp ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py
Обновите INSTALLED_APPS в вашемsettings.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
)
Запустите сервер (python manage.py runserver
), а затем перейдите кhttp://127.0.0.1:8000/admin. Введите имя пользователя и пароль вашего суперпользователя для входа на страницу администратора. Это просто проверка работоспособности, чтобы убедиться, что все работает.
Посвятить Git. Например:
$ git add -A
$ git commit -am "updated settings, created app, boom"
Все готово. Давайте создадим базовыйapp!
Джанго 1,8
Впервые выпущенный 1 апреля 2015 года, наиболее заметные новые функции включают в себя:
-
New PostgreSQL specific functionality: добавлен новыйPostgreSQL-specific ModelFields - поля ArrayField, HStoreField и Range. Ознакомьтесь с нашим сообщением в блоге,Fun With Django’s New Postgres Features, для получения дополнительной информации.
-
Multiple template engines: Теперь вы можете использовать Jinja!
Хотите прочитать полные заметки о выпуске? Ознакомьтесь с официальными изменениями Djangohere.
Последний выпуск вышел 1 мая 2015 г .:v1.8.1
Django Установить
Настройте структуру разработки:
$ mkdir django18_project
$ cd django18_project
$ virtualenv env
$ source env/bin/activate
Вы должны увидеть(env)
перед приглашением,(env)$
, что указывает на то, что ваш virtualenv активирован.
Чтобы деактивировать virtualenv:
$ deactivate
Затем активируйте, как только вы будете готовы начать разработку снова.
С активированным virtualenv установите Django с Pip:
$ pip install django==1.8.1
Вы можете проверить версию, выполнив следующие команды:
>>>
$ python
>>> import django
>>> django.get_version()
'1.8.1'
>>>
Настройка проекта
Настроить проект Django
$ django-admin.py startproject my_django18_project
Это создает новый каталог с именем «my_django18_project» с базовым каталогом Django и структурами:
├── manage.py └── my_django17_project ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
Контроль версий
Прежде чем приступить к разработке, поместите ваш проект под контроль версий. Сначала добавьте файл.gitignore в каталог «django18_project», чтобы предотвратить добавление ненужных файлов в репозиторий git.
Добавьте следующее в файл:
env
*.DS_Store
*.pyc
__pycache__
Теперь инициализируйте (или создайте) новое репозиторий Git и добавьте свои изменения в постановку, а затем в репо.
$ git init
$ git add -A
$ git commit -am "initial"
Если вы используете GitHub, перенесите ваши файлы в центральное хранилище.
Настройки базы данных
Сначала установите MySQL-python, чтобы Python мог общаться с MySQL:
$ pip install MySQL-python
Отредактируйтеsettings.py в каталоге «my_django17_project»:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': 'your_password',
}
}
Создайте таблицы базы данных и настройте суперпользователя:
$ cd my_django18_project
$ python manage.py migrate
$ python manage.py createsuperuser
Запустите сервер разработки:
$ python manage.py runserver
Вы должны увидеть следующий вывод, если пока все хорошо:
Performing system checks...
System check identified no issues (0 silenced).
May 19, 2015 - 09:52:02
Django version 1.8, using settings 'my_django18_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Перейдите кhttp://127.0.0.1:8000, и вы увидите знакомое голубое сообщение «Это сработало!» страница.
Убейте сервер, нажав CONTROL-C обратно в терминал.
заморозка
Установив зависимости, используйте следующую команду, чтобы создать их запись вместе с их последующими версиями в каталоге «my_django17_project»:
$ pip freeze > requirements.txt
Этотcommand пригодится, когда вам нужно воссоздать проект с нуля. Вы можете просто запуститьpip install -r requirements.txt
, чтобы установить все зависимости вашего проекта.
Внесите свои новые изменения в Git.
Создать приложение
Давайте создадим простое одностраничное приложение, которое используетmarkdown для отображения текста.
Настроить
С активированным virtualenv установите следующий пакет для рендеринга уценки.
$ pip install django-markdown-deux
Обновите файл требований, чтобы включить новую зависимость:
$ pip freeze > requirements.txt
Добавьте markdown_deux вsettings.py:
INSTALLED_APPS = (
... snip ...
'markdown_deux',
)
Создайте новый каталог в файле my_django1_project” directory called “templates”, and then add the path to the settings.py *:
import os
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_ROOT = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates'),
)
Структура вашего проекта должна выглядеть так ...
Это для Джанго 1.5 и 1.6:
├── manage.py ├── my_django1*_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── myapp │ ├── __init__.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── templates
Или это для Джанго 1.7:
├── manage.py ├── my_django17_project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── myapp │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── templates
Просмотры и URL
Мы будем следовать структуре архитектурыModel-View-Controller (MVC). Проекты Django логически организованы вокруг этой архитектуры. Однакоarchitecture в Django немного отличается тем, что представления действуют как контроллеры. Таким образом, проекты фактически организованы в архитектуре Model-Template-Views (MTV). Да, это сбивает с толку.
Просмотры
Добавьте следующий код в файлviews.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
def index(request):
return render_to_response('index.html')
Эта функция принимает параметрrequest
, который представляет собой объект, содержащий информацию о пользователе, запрашивающем страницу из браузера. Ответ функции - просто отобразить шаблонindex.html.
URLs
Далее нам нужно добавить новый паттерн в файлurls.py:
urlpatterns = patterns(
'',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'myapp.views.index')
)
Для получения дополнительной информации о том, как сгенерировать шаблоны URL, пожалуйстаview из официальной документации Django.
Шаблоны
Наконец, нам нужно создать шаблонindex.html. Создайте новый файл с именемindex.html в каталоге шаблонов и добавьте найденный кодhere.
Запустите сервер. Как это выглядит? Давайте добавим несколько стилей.
Замените предыдущий код кодомhere.
Лучше?
Заключение
Завершите добавление стилей и контента по своему усмотрению. Затем вернитесь в раздел Workflow, чтобы завершить процесс разработки. Если вам нужна помощь, приобретитеReal Python. Или просто сделайте это в любом случае, чтобы помочь поддержать этот проект с открытым исходным кодом. Спасибо. Ура !.
Сводный рабочий процесс
Ниже приведен основной рабочий процесс, который вы можете использовать в качестве краткого справочника при разработке проекта Django.
Настроить
-
В новом каталоге создайте и активируйте virtualenv.
-
Установите Джанго.
-
Создайте свой проект:
django-admin.py startproject <name>
-
Создать новое приложение:
python manage.py startapp <appname>
-
Добавьте свое приложение в кортеж INSTALLED_APPS.
Добавить основные URL-адреса и представления
-
Сопоставьте файлurls.py вашего проекта с новым приложением.
-
В каталоге вашего приложения создайте файлurls.py, чтобы определить URL-адреса вашего приложения.
-
Добавьте представления, связанные с URL-адресами, вviews.py вашего приложения; убедитесь, что они возвращают объект
HttpResponse
. В зависимости от ситуации вам также может понадобиться запросить модель (базу данных), чтобы получить необходимые данные, запрошенные конечным пользователем.
Шаблоны и статические файлы
-
Создайте каталогtemplates иstatic в корне вашего проекта.
-
Обновитеsettings.py, чтобы включить пути к вашим шаблонам.
-
Добавьте шаблон (файл HTML) в каталогtemplates. В этот файл вы можете включить статический файл с -
{% load static %}
и{% static "filename" %}
. Также вам может понадобиться передать данные, запрошенные пользователем. -
При необходимости обновите файлviews.py.
Модели и базы данных
-
Обновите ядро базы данных доsettings.py (при необходимости, поскольку по умолчанию используется SQLite).
-
Создайте и примените новую миграцию.
-
Создать супер пользователя.
-
Добавьте файлadmin.py в каждое приложение, к которому вы хотите получить доступ в Admin.
-
Создайте свои модели для каждого приложения.
-
Создайте и примените новую миграцию. (Делайте это всякий раз, когда вы вноситеany изменение в модель).
формы
-
Создайте файлforms.py в приложении для определения классов, связанных с формами; определите здесь свои классы ModelForm.
-
Добавьте или обновите представление для обработки логики формы, например, для отображения формы, сохранения данных формы, предупреждения пользователя об ошибках проверки и т. Д.
-
Добавьте или обновите шаблон для отображения формы.
-
Добавьте
urlpattern
в файл приложенияurls.py для нового представления.
Регистрация пользователя
-
Создать пользовательскую форму
-
Добавить представление для создания нового пользователя.
-
Добавьте шаблон для отображения формы.
-
Добавьте urlpattern для нового представления.
Логин пользователя
-
Добавить представление для обработки учетных данных пользователя.
-
Создайте шаблон для отображения формы входа.
-
Добавьте urlpattern для нового представления.
Настройте структуру шаблона
-
Найдите общие части каждой страницы (то есть верхний колонтитул, боковую панель, нижний колонтитул).
-
Добавьте эти части в базовый шаблон
-
Создавайте конкретные. шаблоны, которые присущи базовому шаблону.
Пакет учебных ресурсов Django
Django - это потрясающая среда веб-разработки, которую мы используем каждый день на Real Python (realpython.com работает на Django).
Django может сделать вас высокопроизводительным веб-разработчиком на Python - если вы правильно освоите основы и избежите некоторых распространенных ошибок.
Вот почему мы собрали этот бесплатный «пакет ресурсов Django», который вы можете использовать, чтобы копать глубже:
Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF), который показывает вам советы и приемы, а также общие ловушки, которых следует избегать при создании веб-приложений Python + Django.