Создать сайт на Django

Содержание статьи
Установка Django на хостинге
Добавить url
Ошибки
Видеоуроки
Другие статьи о Python

Введение

  1. Установите Python если его нет.
  2. Определитесь нужно вам виртуальное окружение или нет
  3. Установите Django

Установить Django на своём хосте довольно просто - можете изучить инструкцию ниже.

Для установки Django на хостинг потребуется больше манипуляций. Как это сделать на хостинге Beget вы можете узнать из моей статьи

«Установка Django на виртуальный хостинг»

На многих современных хостингах процедура будет похожей.

Установка Django

Первым делом советую обновить pip

python3 -m pip install --upgrade pip

Затем непосредственно установить Django

python3 -m pip install django

Проверить установку

python3 -m django --version

3.2.4

или

python3 -m pip list

Package Version ----------------- -------- asgiref 3.3.4 Django 3.2.4 pip 21.1.2 pytz 2021.1 setuptools 39.0.1 sqlparse 0.4.1 typing-extensions 3.10.0.0

Команды Django

Список комад Django можно получить выполнив

python3 -m django help

Type 'python -m django help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

В каждом проекте (project) обычно используется одно или несколько приложений (application)

Когда все приложения и конфигурации объединены они составляют веб-приложение.

applications + configurations = web application

Создаём первое приложение

python3 manage.py startapp first_app

Появится директория first_app в которой будут следующие файлы

admin.py

apps.py

__init__.py

migrations

models.py

tests.py

views.py

Переходим в директорию Project_Name/Project_Name

Редактируем файл Project_Name/Project_Name/settings.py

Нужно добавить в список установленных приложений наше новое приложение first_app

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'first_app', ]

Перезапускаем сервер

python3 manage.py runserver

Если перезапуск осуществляется с помощью скрипта выполняем (насколько я знаю, это актуально для хостингов beget и dreamhost)

(docker) andreyolegovich@server:~/andreyolegovich.ru [0] $ touch tmp/restart.txt

Создаём view и связываем с url

Процесс состоит минимум из трёх действий

  1. В директории с приложением, например Project_Name/first_app в файле views.py нужно создать функцию, которая будет слушать url
  2. В главной директории проекта, например Project_Name/Project_Name в файле urls.py нужно импортировать эту функцию
  3. По-прежнему в urls.py нужно добавить сочетание url и функции в urlpatterns

Пример: Переходим в директорию с приложением Project_Name/first_app и редактируем views.py , чтобы создать наш первый view.

Каждый view должен возвращать какой-то HttpResponse объект.

Добавляем следущий код в файл Project_Name/first_app/views.py:

from django.http import HttpResponse def about(request):    return HttpResponse("About Us!")

Теперь нужно привязать этот view к какой-то url

Добавляем следующий код в файл urls.py

from first_app.views import about urlpatterns = [ path('', 'about') ]

В urlpatterns можно указывать url разными способами

urlpatterns = [ path('', welcome), # Главная страница сайта path('welcome.html', welcome), # url с расширением .html path('admin/', admin.site.urls), # url со слешем на конце path('date', date) # url без расширения ]

Обратите внимание на welcome - одна функция может обслуживать несколько url

Добавляем домен, на котором Вы разворачиваете сайт в ALLOWED_HOSTS файла (из проекта) settings.py

ALLOWED_HOSTS = ['http://www.andreyolegovich.ru','127.0.0.1','localhost','andreyolegovich.ru','www.andreyolegovich.ru']

Файлы Django
Project_Name
Project_Namefirst_apptemplates
__init.py__

__pycache__


settings.py

connection to first_app by
INSTALLED_APPS = ['first_app', ]
connection to templates by
TEMPLATES_DIR = os.path.join( BASE_DIR, "templates")


urls.py

wsgi.py
admin.py

apps.py

__init.py__

migrations

models.py

__pycache__

test.py

urls.py

views.py
first_app

Полезные ссылки

documentation

tutorial overview

Статьи о Python
Программирование на Python
Интерактивный режим
Виртуальное окружение
str: строки
\: перенос строки
Списки
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Дата и время в Python
Selenium + Python
Сложности при работе с Python
Flask
Скрипт для ZPL принтера
socket :Python Sockets
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
json.dumps
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: