Если это ваш первый проект на Django — вам необходимо выполнить несколько шагов для его создания. А именно — вам необходимо сгенерировать несколько файлов, которые будут являться ядром вашего проекта — настройки, включая конфигурацию базы данных, настройки для Django и настройки для самого приложения.
Перейдите в директорию, в которой хотите создать проект, например:
Внешний каталог mysite — это корневая директория проекта, просто хранилище для файлов. Для Django её имя не играет роли, и вы можете переименовать её.
Файл manage.py — утилита командной строки, которая позволяет вам работать с вашим Django-проектом. Документация по ним доступна на странице django-admin and manage.py.
Вложенный каталог mysite — это непосредственно пакет Python с вашим проектом. Его имя — это имя модуля Python, которое вам потребуется при импорте (например — import mysite.urls).
Файл mysite/__init__.py — пустой init-файл, который указывает Python, что это директория модуля.
mysite/settings.py — параметры и настройки для данного проекта Django.
mysite/urls.py — список URL-ов для вашего сайта, подробнее — смотрите в URL dispatcher.
mysite/wsgi.py — точка входа для WSGI-сервера, подробнее смотрите на странице How to deploy with WSGI.
Настройка базы данных
Теперь, откройте для редактирования файл mysite/settings.py. Это — обычный файл Python с переменными, описывающими настройки Django-проекта.
По умолчанию — в настройках указан сервер баз данных SQLite. Если вы новичок в базах данных, или просто хотите попробовать Django — это для вас лучший выбор, так как поддержка SQLite включёна в Python.
Если вы хотите использовать другой сервер баз данных, например — MySQL/MariaDB — вам необходимо изменить тут несколько параметров.
Для начала — создайте базу данных и пользователя (примечание: так как предполагается использование кириллицы в вопросах и ответах — то создадим в UTF-8):
$ mysql -u root -p
Enter password:
MariaDB [(none)]> CREATE DATABASE `django_mysite` CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.09 sec)
MariaDB [(none)]> GRANT ALL ON django_mysite.* TO 'django_mysite'@'%' IDENTIFIED BY 'p@ssword';
Query OK, 0 rows affected (0.16 sec)
Кроме того — для работы с внешними базами данных — необходимо установить драйвер.
Например — для MySQL/MariaDB его можно установить с помощью PIP:
# pip install MySQL-python
Теперь — измените параметры в файле settings.py:
ENGINE – выберите 'django.db.backends.sqlite3', 'django.db.backends.postgresql_psycopg2','django.db.backends.mysql'или'django.db.backends.oracle'. доступны и другие бекенды.
NAME – имя вашей базы данных. Если вы используете SQLite — это это должен быть полный путь к файлу базы. Значение по умолчанию (os.path.join(BASE_DIR, 'db.sqlite3')) создаст файл базы в директории проекта.
Так же, если вы используете не SQLite — то укажите такие параметры:
USER — имя пользователя базы данных;
PASSWORD — пароль;
HOST — хост;
Например, для базы, созданной выше, блок DATABASES будет выглядеть так:
Некоторые из этих приложений требуют как минимум одной таблицы в базе данных, поэтому — нам необходимо создать их для использования. Что бы сделать это — выполните следующую команду:
$ python manage.py migrate
Operations to perform:
Synchronize unmigrated apps: staticfiles, messages
Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying sessions.0001_initial... OK
Эта команда проверяет параметр INSTALLED_APPS и создаёт все необходимые для указанных приложений таблицы:
Давайте убедимся, что ваш Django-проект работает. Перейдите в корневой каталог mysite, если вы ещё не в нём, и выполните:
$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
May 06, 2015 - 18:10:03
Django version 1.8.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Вы запустили сервер разработки Django, легковесный веб-сервер, написанный на Python. Разработчики приложений на Django могут использовать его, что бы не тратить время на настройку полноценных веб-серверов, таких как Apache HTTP или NGINX + uWSGI, пока вы не будете готовы использовать ваш проект на production-системе.
Теперь — откройте в браузере адрес http://127.0.0.1:8000/ — и вы увидите страницу Welcome to Django.
По умолчанию — runserver запускается на 127.0.0.1 и порту 8000.
Если вы хотите изменить порт — передайте его аргументом:
$ python manage.py runserver 8080
А что бы изменить IP-адрес — добавьте его перед портом, разделив их двоеточием:
$ python manage.py runserver 0.0.0.0:8000
Полная документация по серверу разработки доступна тут>>>.
Сервер разработки будет сам перезагружаться при каждом изменении кода проекта. Однако, некоторые действия — такие как добавление нового файла, не будут вызывать перезагрузку сервера, и вам придётся сделать это самому.