- Создание проекта django linux
- Установка веб-фреймворка Django в Ubuntu 20.04
- Методы установки Django
- Требования
- Глобальная установка Django из пакета
- Установка Django с помощью pip
- Установка разрабатываемой версии Django с помощью Git
- Создание простого проекта Django
- Настройка ALLOWED_HOSTS
- Тестирование сервера разработки
- Заключение
- Создание первого приложения на Django, часть 1¶
- Создание проекта¶
- Сервер разработки¶
Создание проекта django linux
Для проектов Django определим какой-нибудь каталог на жестком диске. Например, пусть это будет каталог C:\django . Перейдем в консоли к этому каталогу с помощью команды cd.
При установке Django в папке виртуальной среды устанавливается скрипт django-admin.py . А на Windows также исполняемый файл django-admin.exe . Их можно найти в папке виртуальной среды, в которую производилась установка Django: на Windows — в подкаталоге Scripts , а на Linux/MacOS — в каталоге bin .
django-admin предоставляет ряд команд для управления проектом Django. В частности, для создания проекта применяется команда startproject . Этой команде в качестве аргумента передается название проекта.
Итак, вначале активируем ранее созданную виртуальную среду (например, среду hello, которая была создана в прошлой теме, если она ранее не была активирована) и затем выполним следующую команду:
В данном случае мы создаем проект hello. Имя проекта необязательно должно совпадать с именем виртуальной среды.
После выполнения этой команды в текущей папке будет создан подкаталог hello .
Проект будет состоять из следующих элементов:
manage.py : выполняет различные команды проекта, например, запускает приложение
__init__.py : данный файл указывает, что папка, в которой он находится, будет рассматриваться как модуль. Это стандартный файл для Python.
settings.py : содержит настройки конфигурации проекта
urls.py : содержит шаблоны URL-адресов, по сути определяет систему маршрутизации проекта
wsgi.py : содержит свойства конфигурации WSGI (Web Server Gateway Inerface). Он используется при развертывании проекта.
Запустим проект на выполнение. Для этого с помощью команды cd перейдем в консоли к папке проекта. И затем для запуска проекта выполним следующую команду:
Источник
Установка веб-фреймворка Django в Ubuntu 20.04
Django – это полноценный веб-фреймворк Python для создания приложений и динамических сайтов. Он позволяет значительно ускорить процесс разработки и развёртывания приложения, беря на себя общее структурирование кода.
Этот мануал поможет вам установить Django на сервер Ubuntu 20.04, а также научит работать с этим фреймворком.
Методы установки Django
Существует несколько методов установки Django, каждый из которых имеет свои преимущества в определённых ситуациях.
Вот основные методы:
- Глобальная установка Django из пакета. Официальный репозиторий Ubuntu предоставляет пакеты Django, которые можно быстро установить при помощи менеджера apt. Этот метод очень прост, но не так гибок, как другие. Кроме того, репозиторий может содержать устаревшую версию Django.
- Установка через pip в виртуальную среду. Пакеты venv и virtualenv позволяют создавать автономные среды для разных проектов. Благодаря этому выможете установить Django в каталог проекта, не повлияв на остальную систему, включая другие пользовательские настройки и проекты. В большинстве случаев это самый практичный и гибкий метод установки и работы с Django, потому рекомендуется использовать именно его.
- Установка разрабатываемой версии с помощью Git. Чтобы установить последнюю разрабатываемую версию вместо стабильного релиза, нужно клонировать код из репозитория git. Это предоставит новейшие функции и исправления программы; установить такую версию можно в виртуальную среду. Но имейте в виду: разрабатываемые версии нестабильны.
Выберите наиболее подходящий вариант установки Django и следуйте инструкциям соответствующего раздела этого мануала.
Требования
Для работы вам понадобится сервер Ubuntu 20.04, полностью настроенный по этому мануалу.
Глобальная установка Django из пакета
Установка Django из официального репозитория Ubuntu очень проста.
Для начала нужно обновить индекс пакетов при помощи apt:
sudo apt update
После этого нужно узнать, какая версия Python установлена на вашем сервере. Сервер 20.04 по умолчанию поставляется с Python 3.8. Вы можете проверить это:
python3 -V
Python 3.8.2
Теперь можно установить Django:
sudo apt install python3-django
Убедитесь, что установка прошла успешно:
django-admin —version
2.2.12
Если команда вернула версию установленного фреймворка, значит, установка прошла успешно. Обратите внимание: это не самая свежая версия Django. Стандартные репозитории системы обычно содержат немного устаревшие пакеты.
Теперь можете приступать к созданию тестового проекта.
Установка Django с помощью pip
Самым гибким вариантом установки является использование виртуальной среды. Это позволяет устанавливать любые необходимые пакеты изолированно, не влияя на систему в целом. Благодаря модулю venv вы можете выбирать для проектов пакеты Python на индивидуальной основе и не беспокоиться о конфликте зависимостей.
Для начала нужно обновить индекс пакетов:
sudo apt update
Проверьте версию Python:
python3 -V
Python 3.8.2
Теперь установите pip и venv из репозитория Ubuntu:
sudo apt install python3-pip python3-venv
Теперь нужно создать индивидуальную виртуальную среду для вашего проекта. Создайте каталог и перейдите в него (вместо newproject укажите название вашего проекта):
Создайте виртуальную среду в каталоге проекта с помощью команды python. Мы назовем ее условно my_env, но лучше использовать более описательное имя, например, имя вашего проекта.
python3 -m venv my_env
Эта команда создаст автономную среду, а затем установит Python и pip в изолированный каталог. Созданный каталог будет содержать файловую иерархию для установки пакетов.
Чтобы установить пакеты в изолированную среду, сначала её нужно включить:
После этого командная строка изменится. Это сообщает о том, что виртуальная среда была включена. Она будет выглядеть примерно так:
В новой среде используйте pip для установки Django. Вне зависимости от того, какую версию Python вы используете, в виртуальной среде нужно запускать команду pip, а не pip3. Кроме того, при локальной установке не нужно использовать sudo.
pip install django
Убедитесь, что программа установлена успешно.
django-admin —version
3.0.8
Ваша версия может отличаться.
Чтобы покинуть виртуальную среду, используйте команду:
После этого командная строка примет свой стандартный вид. Чтобы снова включить виртуальную среду, вернитесь в каталог проекта и введите эти команды:
/newproject
source my_env/bin/activate
Установка разрабатываемой версии Django с помощью Git
Чтобы установить разрабатываемую версию Django, загрузите её из репозитория Git.
Обновите индекс пакетов:
sudo apt update
Проверьте версию Python, установленную на сервере:
python3 -V
Python 3.8.2
А затем установите менеджер пакетов pip и пакет venv:
sudo apt install python3-pip python3-venv
После этого клонируйте репозиторий Django. Он содержит новейшие функции и исправления, но не является стабильным. Чтобы клонировать репозиторий в каталог
/django-dev в домашнем каталоге, введите:
git clone git://github.com/django/django
Перейдите в этот каталог:
Создайте виртуальную среду для вашего проекта:
python3 -m venv my_env
После этого установите репозиторий с помощью менеджера pip. Используйте флаг -e для установки в режиме editable, это необходимо при установке через систему контроля версий.
Убедитесь, что установка прошла успешно:
django-admin —version
3.2
Версия может отличаться.
Теперь у вас есть последняя (но нестабильная) версия Django в виртуальной среде.
Создание простого проекта Django
После установки Django мы можем ознакомиться с основами этого фреймворка. В этом разделе вы узнаете, как создать простой проект и проверить его работу на сервере разработки в виртуальной среде.
Для начала создайте каталог для проекта и перейдите в него.
Создайте виртуальную среду:
python3 -m venv my_env
pip install django
Чтобы собрать проект, используйте команду django-admin и startproject. В мануале проект условно называется djangoproject (а вы укажите название своего проекта). Команда startproject сделает следующее:
- создаст каталог в текущем рабочем каталоге
- поместит в него скрипт управления manage.py и еще один каталог (с именем проекта) с текущим кодом.
Чтобы избежать большого количества вложенных каталогов, добавьте в команду точку – и тогда Django поместит скрипт и внутренние каталоги в текущий каталог.
django-admin startproject djangoproject .
Чтобы переместить БД (по умолчанию это SQLite), используйте команду migrate с manage.py. При перемещении все внесенные ранее изменения в модели Django будут применены к схеме БД.
Чтобы начать миграцию, введите:
python manage.py migrate
Вы получите такой вывод:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial. OK
Applying auth.0001_initial. OK
Applying admin.0001_initial. OK
Applying admin.0002_logentry_remove_auto_add. OK
Applying admin.0003_logentry_add_action_flag_choices. 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 auth.0007_alter_validators_add_error_messages. OK
Applying auth.0008_alter_user_username_max_length. OK
Applying auth.0009_alter_user_last_name_max_length. OK
Applying sessions.0001_initial. OK
Теперь нужно создать администратора для доступа к интерфейсу Djano.
python manage.py createsuperuser
Команда запросит имя пользователя, почту и пароль.
Настройка ALLOWED_HOSTS
Чтобы успешно протестировать свое приложение, вы должны изменить одну из директив в параметрах Django.
Откройте конфигурационный файл:
Найдите директиву ALLOWED_HOSTS. Она определяет белый список адресов и доменов – все члены списка смогут получить доступ к экземпляру Django. Входящий запрос с заголовком Host, которого нет в этом списке, будет сброшен. С помощью этой директивы Django защищается от некоторых уязвимостей безопасности.
В квадратных скобках укажите IP-адреса или домены, которые связаны с вашим сервером Django. Каждый элемент должен быть указан в кавычках, отдельные записи разделяются запятой. Если вы хотите разрешить запросы для всего домена и любых поддоменов, добавьте в начало записи точку.
ALLOWED_HOSTS = [‘your_server_ip_or_domain’, ‘your_second_ip_or_domain’, . . .]
Сохраните и закройте файл.
Тестирование сервера разработки
Теперь, когда у вас есть пользователь, вы можете запустить сервер разработки Django, чтобы посмотреть, как выглядит новый проект. Имейте в виду: этот сервер нужно использовать только в среде разработки. Когда приложение будет готово к развертыванию, не забудьте внимательно ознакомиться с рекомендациями Django.
Прежде чем запустить сервер разработки, убедитесь, что вы открыли соответствующий порт в брандмауэре. Если вы выполнили мануал по начальной настройке сервера и включили UFW, вы можете открыть порт 8000 с помощью команды:
sudo ufw allow 8000
Теперь запустите сервер:
python manage.py runserver your_server_ip:8000
Откройте свой IP-адрес с портом :8000 в брандмауэре:
Если все работает хорошо, вы увидите:
The install worked successfully! Congratulations!
Чтобы получить доступ к интерфейсу администратора, добавьте секцию /admin/:
На экране появится форма входа, которая запросит имя и пароль пользователя.
Введите учетные данные администратора, которого вы только что создали, и у вас появится доступ к управлению сайтом.
Поработав со своим тестовым проектом, остановите сервер разработки, введя в терминал CTRL-C. Этот стандартный проект Django в дальнейшем можно использовать как шаблон для разработки уникального сайта. Чтобы узнать, как создавать пользовательские приложения и настроить свой сайт, читайте документацию Django.
Заключение
Теперь у вас есть фреймворк Django, обеспечивающий вас всеми необходимыми инструментами для разработки сайтов и приложений.
Источник
Создание первого приложения на Django, часть 1¶
Давайте учиться на примере.
В этом уроке мы расскажем о создании базового приложения для голосования.
Он будет состоять из двух частей:
- Публичный сайт, который позволяет людям просматривать опросы и голосовать в них.
- Сайт администратора, который позволяет добавлять, изменять и удалять опросы.
Мы предполагаем, что вы уже установили Django . Вы можете узнать, установлена ли Django и какая версия, выполнив в командной строке следующую команду (указывается префиксом $):
Если фреймворк Django установлен, вы увидите номер версии. Если нет, вы получите сообщение об ошибке «Нет модуля с именем django».
Это руководство написано для Django 3.1, которая поддерживает Python 3.6 и более поздние версии. Если версия Django не совпадает, вы можете обратиться к учебнику для вашей версии Django, используя переключатель версий в правом нижнем углу этой страницы, или обновить Django до последней версии. Если вы используете более старую версию Python, проверьте Какие версии Python можно использовать с Django? , чтобы найти совместимую версию Django.
Смотрите Как установить Django , чтобы узнать как удалить старые версии Django и установить последнюю версию.
Где получить помощь:
Если у вас возникли проблемы с просмотром этого учебника, перейдите в раздел Получение справки FAQ.
Создание проекта¶
Если вы раньше Django не использовали, то необходимо позаботиться о начальной настройке. А именно, необходимо автоматически сгенерировать определенный код, который устанавливает Django project — набор настроек для конкретного экземпляра Django, включающий в себя конфигурацию базы данных, специфичные для Django опции специфичные настройки для приложения.
Выполните в терминале в командной строке cd : смену каталога на тот, в котором вы хотите хранить код проекта, затем запустите следующую команду:
Это создаст каталог mysite в текущем каталоге. Если этого не произошло, то смотрите Проблемы с запуском django-admin .
Не рекомендуется в качестве названия проекта названия встроенных компонентов Python или Django. Это значит, что следует избегать использования таких имен, как django (будет конфликт с самим фреймворком) или test (будет конфликтовать со стандартным пакетом Python).
Где этот код должен находится?
Если бэкграунд написан на простом старом PHP (без использования современных фреймворков), вы, вероятно, привыкли размещать код в корневом каталоге веб-сервера (например, /var/www ). С Джанго так лучше не делать. Не стоит помещать какой-либо Python код в корневой каталог веб-сервера, потому что существует риск, что он может стать доступным для просмотра. Это не очень хорошо для безопасности сервера.
Размещайте свой код в каком-либо каталоге вне корневого каталога сервера, например /home/mycode .
Давайте посмотрим на результат выполнения команды startproject :
Разберем, для чего нужны эти файлы и каталоги:
- Внешний корневой каталог mysite/ — это контейнер для вашего проекта. Его имя не имеет значения для Джанго; Вы можете переименовать его на что угодно.
- manage.py : утилита, позволяющая взаимодействовать с проектом различными способами. Вы можете прочитать все подробности о manage.py в django-admin и manage.py .
- Внутренний каталог mysite/ это Python модуль вашего проекта. Его название вы будете использовать для импорта чего-либо из этого модуля (например, mysite.urls ).
- mysite/__init__.py : пустой файл, который сообщает Python, что этот каталог должен рассматриваться как пакет Python’а. Если вы новичок в Python, прочитайте больше о пакетах в официальной документации Python.
- mysite/settings.py : Конфигурация и настройки проекта Django. В Настройки Django рассказано все о том, как работают настройки.
- mysite/urls.py : указание URL проекта на Django, можно сказать, что это «оглавление» вашего проекта. Прочитайте больше информации о URL в Диспетчер URL .
- mysite/asgi.py : точка входа для ASGI-совместимых веб-серверов для обслуживания вашего проекта. Смотрите /howto/deploy/asgi/index для более подробной информации, а также документацию по ASGI .
- mysite/wsgi.py : Точка входа для WSGI совместимых веб-серверов для работы с проектом. Смотрите Как развертывать с помощью WSGI для уточнения деталей работы.
Сервер разработки¶
Давайте проверим, работает ли ваш проект Django. Перейдите во внешний каталог mysite , если вы этого еще не сделали, и выполните следующие команды:
Источник