Создать сайт на Django
Введение | |
Установка Django | |
Команды Django | |
Добавить url | |
Похожие статьи |
Введение
- Установите Python если его нет.
- Определитесь нужно вам виртуальное окружение или нет
- Установите 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:~/eth1.ru [0] $ touch tmp/restart.txt
Создаём view и связываем с url
Процесс состоит минимум из трёх действий
- В директории с приложением, например Project_Name/first_app в файле views.py нужно создать функцию, которая будет слушать url
- В главной директории проекта, например Project_Name/Project_Name в файле urls.py нужно импортировать эту функцию
- По-прежнему в 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.eth1.ru','127.0.0.1','localhost','eth1.ru','www.eth1.ru']
Project_Name | |||
---|---|---|---|
Project_Name | first_app | templates | |
__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
DJANGO | |
Установка на хостинг | |
Как выбрать хостинг | |
Ошибки | |
Видеоуроки | |
Python | |
HTML | |
CSS | |
Bash | |
Docker | |
Фреймворки |
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги