Django Girls

  Edit This Page

Твой первый проект на Django!

Часть этой главы основана на учебных пособиях Geek Girls Carrots (http://django.carrots.pl/).

Отдельные части этой главы основаны на учебном пособии django-marcador , лицензированном под Creative Commons Attribution-ShareAlike 4.0 International License. Руководство django-marcador защищено авторским правом Markus Zapke-Gründemann et al.

Мы собираемся создать простой блог!

Первый шаг — создать новый проект Django. Попросту, это значит что мы запустим несколько стандартных скриптов из поставки Django, который создадут для нас скелет проекта. Это просто куча каталогов и файлов, которые мы будем использовать позже.

Имена этих каталог и файлов очень важны для Django. Ты не должна переименовывать их. Перемещать их в другое место тоже не самая удачная идея. Django необходима определенная структуру, чтобы иметь возможность найти важные вещи.

Не забудь: ты должна запускать все команды в virtualenv. Если ты видишь в командной строке префикса (myvenv), то необходимо активировать virtualenv. Мы объясняли как это сделать в разделе Работаем с virtualenv главы Установка Django. Для этого нужно набрать myvenv\Scripts\activate в Windows или source myvenv/bin/activate в Mac OS / Linux.

В консоли Mac OS или Linux нужно запустить следующую команду; не забудьте добавить точку . в конце:

(myvenv) ~/djangogirls$ django-admin startproject mysite .

В Windows; не забудьте добавить точку . в конце:

(myvenv) C:\Users\Name\djangogirls> django-admin startproject mysite .

. Точка крайне важна, потому что говорит скрипту устанавливать Django в вашем текущем каталоге (который и обозначается сокращённо точкой .)

Примечание При вводе команд выше, помните что вам нужно набирать только часть, начинающуюся с django-admin или django-admin.py. (myvenv) ~/djangogirls$ и (myvenv) C:\Users\Name\djangogirls> — это просто примеры строк-приглашений терминала.

django-admin.py это скрипт, который создаст необходимую структуру директорий и файлы для нас. Ты должна теперь иметь следующую структуру проекта:

djangogirls
├───manage.py
└───mysite
        settings.py
        urls.py
        wsgi.py
        __init__.py

manage.py это другой скрипт, который помогает с управлением сайтом. С помощью него мы сможем запустить веб-сервер на твоем компьютере без установки дополнительных программ.

Файл settings.py содержит настройки для твоего веб-сайта.

Помнишь нашу аналогию с почтальоном? Файл urls.py содержит список шаблонов, по которым ориентируется urlresolver.

Давай пока забудем про остальные файлы - мы не будем их изменять. Только не удали их случайно!

Изменяем настройки

Давай внесем изменения в mysite/settings.py. Открой файл в текстовом редакторе, который ты выбрала ранее.

Было бы неплохо установить корректный часовой пояс на нашем сайте. Перейди к списку часовых поясов википедии и скопируй название своего часового пояса (TZ). (например, Europe/Moscow)

В файле settings.py найди строку, содержащую TIME_ZONE, и модифицируй её в соответствии со своим часовым поясом:

TIME_ZONE = 'Europe/Moscow'

Замени "Europe/Moscow" на соответствующий часовой пояс

Нам также необходимо добавить в настройки информацию о расположении статических файлов (мы познакомимся со статичными файлами и CSS в следующих главах). Спустись в конец файла и после переменной STATIC_URL добавь новую - STATIC_ROOT:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Настройка базы данных

Существует множество различных баз данных, которые могут хранить данные для твоего сайта. Мы будем использовать стандартную -- sqlite3.

Она уже выбрана по умолчанию в файле mysite/settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Чтобы создать базу данных для нашего блога, набери в командной строке следующее: python manage.py migrate (мы должны быть в директории djangogirls, где расположен файл manage.py). Если все прошло успешно, то ты увидишь следующий результат:

(myvenv) ~/djangogirls$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: messages, staticfiles
  Apply all migrations: contenttypes, sessions, admin, auth
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

И мы закончили! Пришло время запустить веб-сервер и посмотреть работает ли наш веб-сайт!

Ты должна быть в директории, где расположен файл manage.py (в нашем случае -- djangogirls). Запустим веб-сервер из командной строки: python manage.py runserver:

(myvenv) ~/djangogirls$ python manage.py runserver

Если вы используете Windows, и команда падает с ошибкой UnicodeDecodeError, используйте вместо неё другую:

(myvenv) ~/djangogirls$ python manage.py runserver 0:8000

Теперь тебе нужно проверить работает ли веб-сайт - открой браузер (Firefox, Chrome, Safari, Internet Explorer или любой другой) и набери следующий адрес:

http://127.0.0.1:8000/

Веб-сервер займёт командную строку, пока вы его не остановите. Чтобы и дальше иметь возможность набирать команды, откройте ещё одно окно терминала и активируйте в нём виртуальное окружение. Чтобы остановить веб-сервер, перейдите обратно в окно, в котором он работает и нажмите CTRL + C - кнопки Control и C вместе (в Windows, может потребоваться нажать клавиши Ctrl + Break).

Поздравляем! Ты только что создала свой первый веб-сайт и запустила его на веб-сервере! Ну не круто ли?

Сработало!

Готова к следующему шагу? Пришло время создать наполнение для нашего блога!