Создание веб-приложения Python с помощью Django

Django — это высокоуровневый веб-фреймворк Python, который поощряет быструю разработку и чистый, прагматичный дизайн. Он берет на себя большую часть хлопот веб-разработки, позволяя разработчикам сосредоточиться на написании приложения, а не изобретать велосипед. Эта статья проведет вас через создание простого веб-приложения с использованием Django.

Начало работы с Джанго

Прежде чем вы сможете начать создавать веб-приложение Django, вам нужно установить Django. Вы можете установить Django с помощью pip, установщика пакетов Python:

pip install django

После установки Django вы можете создать новый проект Django, выполнив следующую команду в терминале или командной строке:

django-admin startproject myproject

Эта команда создает новый каталог с именем myproject с необходимыми файлами для начала работы. Перейдите в этот каталог:

cd myproject

Создание приложения Django

Внутри вашего проекта Django вы можете создавать отдельные приложения, которые обрабатывают определенную функциональность. Например, у вас может быть приложение для аутентификации пользователя, другое — для постов в блоге и т. д. Чтобы создать приложение, выполните следующую команду:

python manage.py startapp myapp

Это создает новый каталог с именем myapp, содержащий такие файлы, как models.py, views.py и tests.py, среди прочих. Вы определите свои модели, представления и шаблоны в этом приложении.

Определение моделей

Модели Django определяют структуру ваших данных и представлены в виде классов Python. Вы определяете их в файле models.py в вашем приложении:

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

После определения моделей вам необходимо создать для них таблицы базы данных. Выполните следующие команды, чтобы применить миграции:

python manage.py makemigrations
python manage.py migrate

Создание представлений и шаблонов

Представления Django обрабатывают логику вашего приложения и взаимодействуют с моделями для рендеринга данных в шаблонах. Простое представление можно создать в файле views.py:

from django.shortcuts import render
from .models import BlogPost

def home(request):
    posts = BlogPost.objects.all()
    return render(request, 'home.html', {'posts': posts})

Приведенный выше код извлекает все записи блога из базы данных и передает их в шаблон с именем home.html. Шаблон home.html хранится в каталоге с именем templates в вашем приложении:

<!DOCTYPE html>
<html>
<head>
    <title>Blog Home</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
    {% for post in posts %}
        <li>{{ post.title }} - {{ post.created_at }}</li>
    {% endfor %}
    </ul>
</body>
</html>

Настройка URL-адресов

Чтобы подключить представления к URL-адресам, вам необходимо определить шаблоны URL-адресов. Создайте файл с именем urls.py в каталоге вашего приложения и добавьте следующий код:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

Затем включите шаблоны URL этого приложения в основной файл проекта urls.py:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

Запуск сервера разработки

После настройки моделей, представлений, шаблонов и URL-адресов вы можете запустить сервер разработки Django, чтобы увидеть свое веб-приложение в действии:

python manage.py runserver

Откройте веб-браузер и перейдите по адресу http://127.0.0.1:8000/, чтобы увидеть работающее веб-приложение Django.

Заключение

Django упрощает создание мощных и надежных веб-приложений с помощью Python. В этом руководстве рассматриваются основы настройки проекта Django, создания приложения, определения моделей, создания представлений и шаблонов, настройки URL-адресов и запуска сервера разработки. С помощью Django вы можете с легкостью создавать масштабируемые и поддерживаемые веб-приложения.