Начиная проект Джанго

Начиная проект Джанго

Django - это высокоуровневый веб-фреймворк Python, который способствует быстрой разработке и чистому, прагматичному дизайну.

В этом руководстве мы ответим на вопрос“How do I setup a Django (1.5, 1.6, 1.7, or 1.8) project from scratch?” Другими словами, вы узнаете, как установить Django и как настроить структуру проекта Django.

Вот как вы можете максимально использовать этот урок:

  1. Прочитайте разделы «Введение» и «Настройка».

  2. Затем выберите свой яд - Django 1.5, 1.6, 1.7, 1.8 - чтобы настроить проект Django.

  3. После начальной настройки проекта перейдите в раздел «Создание приложения», чтобы настроить удобное и простое приложение.

  4. Затем ознакомьтесь с кратким рабочим процессом для краткого руководства по проекту 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:

  1. Python 2.7.x или 3.4.x

  2. easy_install и Pip

  3. Git

  4. virtualenv

  5. Джанго

  6. База данных (SQLite, MySQL, PostgreSQL, MongoDB и т. Д.)

  7. Юг (для версий Django до 1.7)

  8. Текстовый редактор (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 года, наиболее заметные новые функции включают в себя:

  1. Configurable User Model: вместо того, чтобы использовать определение Django для «пользователя», теперь вы можете использовать свою собственную модель пользователя, создавая настраиваемые поля, например ссылки на социальные профили, дату рождения, любимый цвет и т. д.

  2. 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

Теперь, когда ваше приложение настроено, выполняйте любой из этих простых рабочих процессов каждый раз, когда вы хотите внести изменения в свое приложение:

Основные:

  1. Перейдите к вашему проекту

  2. Активировать virtualenv

  3. развивать

  4. Зафиксируйте изменения

  5. развертывание

  6. Деактивировать virtualenv

Дополнительно:

  1. Перейдите к вашему проекту

  2. Активировать virtualenv

  3. Создать и оформить новую ветку git

  4. развивать

  5. Зафиксируйте изменения

  6. Объедините новую ветку с вашей основной веткой

  7. Вытащить изменения в производственную папку

  8. развертывание

  9. Деактивировать virtualenv

Ура! Любые вопросы? Предложения?

Давайте создадим базовыйapp!

Джанго 1.6

Впервые выпущенный 6 ноября 2013 года, наиболее заметные новые функции включают в себя:

  1. Python 3 Support: Поддержка Python 3 теперь официальная, без каких-либо ограничений, поэтому вы можете запустить ее в производственной среде.

  2. Improved Database Transaction Management: API компактнее, чище и проще, что значительно упрощает откат и обработку ошибок.

  3. Новый Test Runner

  4. Постоянные подключения к базе данных

Хотите прочитать полные заметки о выпуске? Ознакомьтесь с официальными изменениями 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 года, наиболее заметные новые функции включают в себя:

  1. Database Migrations: Django теперь имеет встроенную поддержку для внесения изменений в схему базы данных, которая основана на South. Это большое!

  2. Улучшенные инструменты проверкиsystem для проверки и проверки ваших проектов

  3. Рефакторинг того, как 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 года, наиболее заметные новые функции включают в себя:

  1. New PostgreSQL specific functionality: добавлен новыйPostgreSQL-specific ModelFields - поля ArrayField, HStoreField и Range. Ознакомьтесь с нашим сообщением в блоге,Fun With Django’s New Postgres Features, для получения дополнительной информации.

  2. 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.

Настроить

  1. В новом каталоге создайте и активируйте virtualenv.

  2. Установите Джанго.

  3. Создайте свой проект:django-admin.py startproject <name>

  4. Создать новое приложение:python manage.py startapp <appname>

  5. Добавьте свое приложение в кортеж INSTALLED_APPS.

Добавить основные URL-адреса и представления

  1. Сопоставьте файлurls.py вашего проекта с новым приложением.

  2. В каталоге вашего приложения создайте файлurls.py, чтобы определить URL-адреса вашего приложения.

  3. Добавьте представления, связанные с URL-адресами, вviews.py вашего приложения; убедитесь, что они возвращают объектHttpResponse. В зависимости от ситуации вам также может понадобиться запросить модель (базу данных), чтобы получить необходимые данные, запрошенные конечным пользователем.

Шаблоны и статические файлы

  1. Создайте каталогtemplates иstatic в корне вашего проекта.

  2. Обновитеsettings.py, чтобы включить пути к вашим шаблонам.

  3. Добавьте шаблон (файл HTML) в каталогtemplates. В этот файл вы можете включить статический файл с -{% load static %} и{% static "filename" %}. Также вам может понадобиться передать данные, запрошенные пользователем.

  4. При необходимости обновите файлviews.py.

Модели и базы данных

  1. Обновите ядро ​​базы данных доsettings.py (при необходимости, поскольку по умолчанию используется SQLite).

  2. Создайте и примените новую миграцию.

  3. Создать супер пользователя.

  4. Добавьте файлadmin.py в каждое приложение, к которому вы хотите получить доступ в Admin.

  5. Создайте свои модели для каждого приложения.

  6. Создайте и примените новую миграцию. (Делайте это всякий раз, когда вы вноситеany изменение в модель).

формы

  1. Создайте файлforms.py в приложении для определения классов, связанных с формами; определите здесь свои классы ModelForm.

  2. Добавьте или обновите представление для обработки логики формы, например, для отображения формы, сохранения данных формы, предупреждения пользователя об ошибках проверки и т. Д.

  3. Добавьте или обновите шаблон для отображения формы.

  4. Добавьтеurlpattern в файл приложенияurls.py для нового представления.

Регистрация пользователя

  1. Создать пользовательскую форму

  2. Добавить представление для создания нового пользователя.

  3. Добавьте шаблон для отображения формы.

  4. Добавьте urlpattern для нового представления.

Логин пользователя

  1. Добавить представление для обработки учетных данных пользователя.

  2. Создайте шаблон для отображения формы входа.

  3. Добавьте urlpattern для нового представления.

Настройте структуру шаблона

  1. Найдите общие части каждой страницы (то есть верхний колонтитул, боковую панель, нижний колонтитул).

  2. Добавьте эти части в базовый шаблон

  3. Создавайте конкретные. шаблоны, которые присущи базовому шаблону.

Пакет учебных ресурсов 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.

Related