Часть 1: Начните свое путешествие в джанго

Django
Часть 1: Начните свое путешествие в джанго

Адрес склада всех примеров кода в этой статье:GitHub.com/привет GitHub…

Описание среды разработки

Системная платформа среды разработки на момент написания этого руководства — Windows 10 (64-разрядная), версия Python — 3.6.4 (64-разрядная), а версия django — 2.2.3.

Рекомендуется максимально соответствовать среде разработки учебника (особенно версиям Python и django), чтобы избежать ненужных проблем. Версия Python должна быть Python 3.4 или выше, а номер версии django должен быть django 2.2.x.

Уведомление:

Python 2 больше не поддерживается в django 2.0+.

Установить Python

Установить Python под Windows очень просто: зайдите на официальный сайт Python, чтобы найти адрес загрузки Python 3, выберите 32-битный или 64-битный установочный пакет в соответствии с вашей системой и дважды щелкните, чтобы установить его после загрузки.

После установки проверьте, может ли Python нормально работать. Введите в командной строкеpython -V, если выводится номер версии Python, это означает, что Python был успешно установлен.

> python -V
Python 3.6.4

намекать:

Если появится сообщение о том, что команда не найдена, а вы уверены, что Python установлен, возможно, это связано с тем, что вы не добавили Python в переменные среды. Вы можете найти соответствующие руководства о том, как добавить Python в переменную среды, просто добавьте установленный Python в переменную среды.

Используйте виртуальную среду

Настоятельно рекомендуется разрабатывать django в виртуальной среде.

Виртуальная среда — это инструмент Python, который позволяет создать отдельную среду Python.

Зачем использовать виртуальную среду? Например, предположим, что в вашей системе уже установлен Python, и вы немного изучили django, прежде чем читать это руководство, но django, установленный в то время, все еще имеет старую версию 1.x. В нашем руководстве используется последняя версия django 2.2.x, вы можете не захотеть удалять старую версию django 1.x, потому что это может привести к сбою ваших предыдущих проектов. Что мне делать, если я хочу, чтобы исходный проект работал в среде django 1.x, и я хочу установить django 2.2.x, чтобы запустить проект этого руководства? Использование виртуальной среды может прекрасно решить эту проблему.

Виртуальная среда помогает нам клонировать новую среду Python из системной среды Python, которая не зависит от исходной среды Python. Мы можем установить django 2.2.x в эту недавно клонированную среду и запустить наш новый проект в этой новой среде.

Существует множество способов создания и использования виртуальных сред. Раньше я использовал virtualenv и virtualenvwrapper — две библиотеки Python для использования виртуальных сред и управления ими. Теперь я предпочитаю использовать Pipenv вместо двух вышеупомянутых инструментов. Кроме того, Python 3.3 и более поздние выпуски поставляются с venv для готового использования. Для простоты есть два способа: один — это виртуальный, который я использовал раньше, а другой — это Pipenv, который я использую сейчас. Использование virtualenvwrapper и venv можно изучить самостоятельно после завершения этого руководства.

Поскольку Pipenv может прекрасно заменить virtualenv и virtualenvwrapper и лучше управлять зависимостями проекта, если в последующих руководствах будут использоваться виртуальные среды, для управления будет использоваться Pipenv.

virtualenv Создание виртуальных сред и управление ими

Virtualenv очень прост, сначала установите Virtualenv, откройте инструмент командной строки, введите следующую команду для установки Virtualenv:

> pip install virtualenv

После успешной установки вы можете приступить к созданию виртуальной среды, указать понравившийся каталог, и virtualenv установит новую виртуальную среду в указанный вами каталог. Например, я установил его в каталог C:\Users\yangxg\.virtualenvs и назвал виртуальную среду blogproject_virtualenv (вы можете взять любое имя). Выполните следующую команду на панели команд:

> virtualenv C:\Users\yangxg\.virtualenvs\blogproject_virtualenv

Виртуальная среда создана, нам нужно активировать среду, перейти в корневую директорию только что созданной виртуальной среды и запустить программу активации в директории Scripts для ее активации:

> cd C:\Users\yangxg\.virtualenvs\blogproject_virtualenv
> .\Scripts\activate
(blogproject_virtualenv) >

Уведомление

В Linux нет каталога Scripts\, вместо него есть каталог bin/. И команда активации:

$ source ./bin/activate

Вы можете видеть, что перед командной строкой есть еще (blogproject_virtualenv), что указывает на то, что мы успешно активировали виртуальную среду, а затем мы можем начать установку django.

Уведомление:

При использовании PowerShell Microsoft по умолчанию не разрешает выполнение сценария ps1, если вы получаете следующую ошибку:

+CategoryInfo          : SecurityError:(:) [],PSSecurityException
+FullyQualifiedErrorId : UnauthorizedAccess

Политику выполнения сценариев PowerShell необходимо изменить, чтобы разрешить выполнение сценариев ps1. Команда Set-ExecutionPolicy RemoteSigned:

> Set-ExecutionPolicy RemoteSigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): Y

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

Pipenv создает и управляет виртуальными средами

сначала по командеpip install pipenvУстановите Пипенв.

Затем создайте папку в качестве корневого каталога проекта блога, который мы будем разрабатывать.Например, я создаю новый каталог с именем HelloDjango-blog-tutorial в моем личном рабочем каталоге C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\, как корневой каталог проекта.

Затем войдите в этот каталог и выполните в этом каталогеpipenv install, Pipenv сделает все за нас. В частности, Pipenv создаст виртуальную среду на основе имени папки проекта и сгенерирует Pipfile и Pipfile.lock в корневом каталоге проекта для управления зависимостями проекта (зависимости, установленные с помощью Pipenv, будут автоматически записываться в файл Pipfile без необходимости for Затем вручную поддерживайте файл requirements.txt, аналогичный package.json из node.js, что действительно здорово).

Кроме того, Pipenv также прекрасно выводит следующую информацию, чтобы рассказать вам, как использовать созданную виртуальную среду:

To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.

То есть, чтобы активировать виртуальную среду, запустите команду оболочки pipenv в корневом каталоге проекта.

Либо запустите команду pipenv run + без активации виртуальной среды, чтобы выполнить указанную команду в виртуальной среде.

Учитывая, что Pipenv может легко помочь нам управлять виртуальными средами и зависимостями проектов, мы всегда будем использовать Pipenv в качестве инструмента управления виртуальной средой в будущем.

намекать:

Вам может быть интересно, где находится виртуальная среда, созданная pipenv? По умолчанию Pipenv создает виртуальную среду в каталоге ~/.virtualenvs и использует ее в корневом каталоге проекта.pipenv --venvВы можете просмотреть конкретное расположение виртуальной среды, соответствующей проекту:

> pipenv --venv
C:\Users\yangxg\.virtualenvs\HelloDjango-blog-tutorial-VDQF8f6V

Установить Джанго

Пара официальной документации djangoКак установить джангоДаются подробные и понятные инструкции, но они нам в данный момент не нужны, достаточно использовать команду pipenv для решения задачи.Перейдите в корневой каталог проекта,бегать:

> pipenv install django==2.2.3

Мы используем django==2.2.3 для установки указанной версии django, чтобы обеспечить согласованность с руководством. если вы напрямуюpipenv install djangoЕсли это так, можно установить последнюю версию выпуска django вместо django 2.2.3, что может привести к несовместимости и вызвать проблемы с плавным ходом последующих руководств.

Проверьте, прошла ли установка успешно, сначала введите в командной строкеpipenv run pythonзапускатьвиртуальная средаИнтерфейс интерпретатора Python в ). затем введитеimport django, если об ошибке не сообщается, установка django прошла успешно. запустивprint(django.get_version())Распечатайте номер версии django, чтобы убедиться, что установлена ​​правильная версия django.

> pipenv run python
(HelloDjango-blog-tutorial-VDQF8f6V) > python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD6Type "help", "copyright", "credits" or "license" for more information.

>>> import django
>>> print(django.get_version())
2.2.3

Создайте проект Джанго

Все готово, давайте соберем проект django.

Проект django (Project) — это контейнер кода нашего проекта, например, весь код в нашем проекте блога (включая автоматически сгенерированный django для нас и написанный нами) включен в этот проект. На самом деле, очень популярно использовать папку для хранения ряда файлов кода Python и файлов конфигурации django, которую можно рассматривать как проект django. Нам не нужно создавать эту папку и файл кода вручную, встроенные команды django уже делают это за нас. Например, я помещаю код проекта блога в каталог C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\HelloDjango-blog-tutorial и называю его blogproject в качестве имени проекта, а затем запускаю следующую команду в каталоге корневой каталог проекта для создания проекта:

> pipenv run django-admin startproject blogproject C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\HelloDjango-blog-tutorial

django-admin startprojectКоманда используется для инициализации проекта django, она получает два параметра, первый это имя проекта blogproject, второй указывает место, где генерируется проект, потому что мы создали корневую директорию проекта для того, чтобы использовать Pipenv ранее, поэтому укажите местоположение проекта, как и ранее созданное местоположение.

Войдите в каталог проекта C:\Users\yangxg\SpaceLocal\Workspace\G_Courses\HelloDjango-blog-tutorial (вы можете указать другой путь), вы найдете дополнительный каталог blogproject\, файловая структура всего проекта такая следует:

HelloDjango-blog-tutorial\
	Pipfile
	Pipfile.lock
    manage.py
    blogproject\
        __init__.py
        settings.py
        urls.py
        wsgi.py

Каталог верхнего уровня HelloDjango-blog-tutorial\ — это только что указанный нами корневой каталог проекта. В каталоге HelloDjango-blog-tutorial\ есть файл manage.py. manage означает управление. Как следует из названия, manage.py — это файл сценария Python, который django генерирует для нас для управления этим проектом. Он будет представлен снова, когда мы используем его позже. Существует также каталог blogproject\ на том же уровне, что и manage.py, в котором хранятся некоторые файлы конфигурации django, такие как settings.py, urls.py и т. д., которые будут подробно представлены позже.

Hello Django

Веб-сайт должен работать на веб-сервере, и django уже предоставляет нам веб-сервер для локальной разработки. В инструменте командной строки перейдите в каталог, где находится manage.py, то есть в каталог HelloDjango-blog-tutorial\. бегатьpipenv run python manage.py runserverКоманда может запустить веб-сервер на локальном компьютере:

> pipenv run python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 05, 2019 - 21:05:37
django version 2.2.3, using settings 'blogproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Это сообщение означает, что наш сервер успешно запущен.

Введите в браузереhttp://127.0.0.1:8000/, см. следующую страницу:

Джанго сработало!

Уведомление:

Если вы наберете в браузереhttp://127.0.0.1:8000/После того, как вы увидите, что веб-сайт недоступен, проверьте, не связана ли проблема с прокси-сервером браузера. Например, если некоторые прокси-сервисы VPN включены, вы можете отключить их все.

Это первое использование manage.py, запуск егоrunserverКоманда запускает локальный сервер разработки, и в будущем мы столкнемся с другими командами.

Нажмите Ctrl + c под инструментом панели команд, чтобы выйти из сервера разработки (нажмите несколько раз подряд, если это бесполезно). Перезапустите, чтобы снова запуститьpython manage.py runserver.

Язык django по умолчанию — английский, поэтому страница приветствия отображается на английском языке. Мы внесли небольшие изменения в файл конфигурации django, чтобы он поддерживал китайский язык. Откройте файл settings.py в любом текстовом редакторе и найдите следующие две строки кода:

HelloDjango-blog-tutorial/blogproject/settings.py

## 其它配置代码...

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'

## 其它配置代码...

ПучокLANGUAGE_CODEЗначение изменяется наzh-hans,TIME_ZONEЗначение изменяется наAsia/Shanghai:

HelloDjango-blog-tutorial/blogproject/settings.py

## 其它配置代码...

# 把英文改为中文
LANGUAGE_CODE = 'zh-hans'

# 把国际时区改为中国时区(东八区)
TIME_ZONE = 'Asia/Shanghai'

## 其它配置代码...

После сохранения измененийЗакройте файл settings.py.

Снова запустите сервер разработки и откройте его в браузере.http://127.0.0.1:8000/, вы можете увидетьDjango уже поддерживает китайский язык.

Теперь, когда все готово, давайте начнем наше путешествие по разработке блога django!

Welcome
Добро пожаловать в общедоступную учетную запись HelloGitHub, чтобы получать больше информации и контента о проектах с открытым исходным кодом.