Django#
Django — это мощный веб-фреймворк для Python, который позволяет быстро создавать сложные веб-приложения. Он включает в себя множество встроенных функций, таких как ORM (Object-Relational Mapping), аутентификация, админ-панель и многое другое.
Основные пакеты
Пакет |
Версия |
Репозиторий |
Описание |
---|---|---|---|
python3-django |
3.3.2.19-1+deb12u1+ci1 |
extended |
Платформа веб-разработки |
Дополнительные пакеты
Пакет |
Версия |
Репозиторий |
Описание |
---|---|---|---|
python3-sqlalchemy |
1.4.46+ds1-1+b2 |
installation |
Библиотека абстракции базы данных (ORM) |
python3-psycopg2 |
2.9.5+b2 |
installation |
Адаптер базы данных PostgreSQL |
Примечание
В репозиториях большая часть пакетов, относящихся к Django, имеют вид python3-django…
Установка Django#
установите пакет Django:
sudo apt install django
Создание проекта Django#
создайте новый проект Django:
django-admin startproject myproject
Эта команда создаст папку myproject со следующей структурой: Copy
myproject/
│
├── manage.py
└── myproject/
├── __init__.py
├── settings.py
├── urls.py
├── asgi.py
└── wsgi.py
Запуск сервера разработки#
перейдите в папку проекта и запустите сервер разработки:
cd myproject
python3 manage.py runserver
откройте браузер и перейдите по адресу http://127.0.0.1:8000/. Вы увидите стартовую страницу Django.
Создание приложения#
В Django проект может состоять из нескольких приложений.
создадим новое приложение:
python3 manage.py startapp myapp
эта команда создаст папку myapp со следующей структурой:
myapp/
│
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
Регистрация приложения#
откройте файл myproject/settings.py и добавьте myapp в список INSTALLED_APPS:
INSTALLED_APPS = [
...
'myapp',
]
Создание представления#
откройте файл myapp/views.py и добавьте простое представление:
from django.http import HttpResponse
def home(request):
return HttpResponse("Привет, Django!")
Настройка маршрута#
откройте файл myapp/urls.py (если его нет, создайте) и добавьте маршрут:
from django.urls import path
from . import views
urlpatterns = [
path("", views.home, name="home"),
]
теперь откройте файл myproject/urls.py и подключите маршруты приложения:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("myapp.urls")),
]
Проверка работы#
запустите сервер разработки:
python3 manage.py runserver
перейдите по адресу http://127.0.0.1:8000/. Вы увидите сообщение «Привет, Django!».
Использование шаблонов (Templates)#
создайте папку templates внутри папки myapp:
mkdir myapp/templates
cоздайте файл myapp/templates/index.html и добавьте следующий код:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Главная страница</title>
</head>
<body>
<h1>Привет, {{ name }}!</h1>
</body>
</html>
Изменение представления#
измените файл myapp/views.py, чтобы использовать шаблон:
from django.shortcuts import render
def home(request):
return render(request, "index.html", {"name": "Django"})
Работа с моделями (Models)#
откройте файл myapp/models.py и создайте простую модель:
from django.db import models
class Message(models.Model):
text = models.CharField(max_length=200)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.text
Создание и применение миграций#
создайте миграции и примените их:
python3 manage.py makemigrations
python3 manage.py migrate
Использование модели в админке#
откройте файл myapp/admin.py и зарегистрируйте модель:
from django.contrib import admin
from .models import Message
admin.site.register(Message)
теперь перейдите по адресу http://127.0.0.1:8000/admin/, войдите в административную панель (создайте суперпользователя, если нужно) и управляйте объектами модели Message.
Запуск приложения в production#
Для запуска Django-приложения в production рекомендуется использовать WSGI-сервер, например, Gunicorn, и веб-сервер, например, Apache2.