Блог на Django #3: Запуск сервера

289

В Django есть веб-сервер, который нужен для быстрой проверки кода. Благодаря ему не нужно заниматься наладкой полноценного рабочего решения. При его запуске сервер продолжает проверять изменения в коде и самостоятельно перезагружается. Но некоторые вещи он не замечает: такие как появление новых файлов в проекте. В таком случае нужно перезагрузить сервер вручную.

Запустить сервер можно с помощью следующей команды в корневом каталоге:

python manage.py runserver

Появятся приблизительно такие строки:

Performing system checks...

System check identified no issues (0 silenced).
November 16, 2019 - 15:20:27
Django version 2.0.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Теперь нужно открыть http://127.0.0.1:8000/ в браузере. Страница сообщит, что проект работает. Как на следующем скриншоте:

Запуск первого проекта

Это изображение сообщает, что Django работает. Если взглянуть на консоль, то можно увидеть запрос GET от браузера:

[16/Nov/2019 15:22:45] "GET / HTTP/1.1" 200 16348

Каждый HTTP-запрос регистрируется отдельно. В командной строке будут отображаться все ошибки, которые появятся в процессе работы.

Можно запустить сервер на другом порте или использовать другой файл настроек с помощью таких команд:

python manage.py runserver 127.0.0.1:8001 --settings=mysite.settings

Работая с разными средами, требующими разных настроек, можно создать несколько файлов для каждой из них.

Этот сервер стоит использовать только для разработки, но не для полноценного использования. Чтобы развернуть Django в производственной среде (production) его нужно запустить в качестве WSGI-приложения с помощью реального инструмента: Apache, Gunicorn или uWSGI.

Тест на знание python

Какие операторы можно использовать со строками?
Что делает функция re.match()?
Что выведет этот код?
Блог на Django #3: Запуск сервера
Что выведет этот код?
Блог на Django #3: Запуск сервера
Какой будет результат выполнения кода — print('Monty' + 'Python') ?