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

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

Содержание
  1. Установите Django
  2. Создайте проект
  3. Настройка базы данных
  4. Создать приложение
  5. Определить модели
  6. Создание представлений
  7. Настройка URL-адресов
  8. Шаблонизация с помощью HTML
  9. Работа с формами
  10. Интерфейс администратора
  11. Развертывание
  12. Заключение

Django - это мощный веб-фреймворк для Python, который позволяет быстро создавать веб-приложения. В этом руководстве мы создадим базовое приложение Django с нуля. Мы рассмотрим:

Установка Django Создание проекта Настройка базы данных Создание приложения Определение моделей Создание представлений Настройка URL-адресов Шаблонизация с помощью HTML Обслуживание статических файлов Работа с формами Интерфейс администратора Развертывание

К концу курса вы получите простое веб-приложение, работающее с использованием мощных возможностей Django. Давайте приступим!

Вы должны понимать Python и то, как его настроить; если вы не знаете, можете прочитать некоторые из этих материалов.

Установите Django

Django можно легко установить с помощью pip. Сначала убедитесь, что у вас установлен Python 3 и pip.

Откройте терминал или командную строку и выполните команду:

pip install Django.

Это приведет к установке последней версии Django.

Вы можете убедиться в том, что Django успешно установлен, выполнив команду:

python -m django --version.

Это должно вывести версию установленного Django.

Создайте проект

После установки Django мы можем создать наш первый проект.

Перейдите в каталог, где будет храниться ваш код, и выполните команду:

django-admin startproject myproject.

Это создаст папку myproject с некоторыми автоматически генерируемыми файлами и папками:

manage.py: Утилита командной строки, используемая для взаимодействия с проектом. myproject/settings.py: Настройки и конфигурация для проекта Django. myproject/urls.py: URL-маршруты верхнего уровня для проекта Django. myproject/init.py: Пустой файл указывает Python рассматривать папку myproject как пакет Python.

Настройка базы данных

По умолчанию Django использует SQLite, который не требует дополнительной настройки базы данных. SQLite сохраняет базу данных в файле в директории проекта.

Если вы хотите использовать другую базу данных, например PostgreSQL или MySQL, установите соответствующие связки баз данных и измените настройку DATABASES в файле myproject/settings.py.

Например, для использования PostgreSQL:

pip install psycopg2.

Затем в файле settings.py:

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'password', 'HOST': '127.0.0.1', 'PORT': '5432', } }

Создать приложение

Проекты Django состоят из различных приложений, каждое из которых служит определенной цели.

Чтобы создать приложение под названием Pages:

python manage.py startapp pages

Это создаст папку pages внутри проекта с собственными models.py, views.py и т.д.

Теперь зарегистрируйте приложение в файле myproject/settings.py в разделе INSTALLED_APPS:

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'pages', # new ].

Теперь приложение готово к использованию.

Определить модели

Модели представляют собой данные для нашего приложения и определяются как классы в файле models.py приложения.

Для нашего приложения ”Страницы” мы можем создать простую модель HomePage:

# pages/models.py from django.db import models class HomePage(models.Model): title = models.CharField(max_length=200) content = models.TextField().

models.Model - это Django-модель, которая будет сохранена в базе данных. models.CharField - для мелкого и крупного текста. models.TextField - для крупного текстового содержимого.

Мы также создадим файл миграции для создания модели в базе данных:

python manage.py makemigrations

Это создаст файл миграции для создания таблицы HomePage.

Затем запустите миграции с помощью:

python manage.py migrate

Теперь модель HomePage существует в базе данных!

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

Представления - это функции Python, которые обрабатывают запросы и возвращают ответы.

В pages/views.py мы можем создать простое представление для отображения шаблона:

# pages/views.py from django.shortcuts import render def home(request): return render(request, 'home.html', {'title':'My Home Page'}).

Это домашнее представление будет искать шаблон под названием home.html и рендерить его, передавая заголовок в качестве контекста.

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

URL-адреса определяют, какое представление обрабатывает каждый запрос, основываясь на пути URL-адреса запроса.

В файле myproject/urls.py добавьте путь для нашего домашнего представления:

from django.contrib import admin from django.urls import path from pages.views import home urlpatterns = [ path('admin/', admin.site.urls), path('', home, name='home'), ].

Это отображает запросы к URL-адресу корня сайта ’’ на домашний вид.

Позже мы можем добавить другие пути для дополнительных видов.

Шаблонизация с помощью HTML

Django использует язык шаблонов, Django Template Language (DTL), для создания динамического HTML.

Шаблоны помещаются в папку templates в каждом приложении. Мы можем создать templates/home.html:

<!DOCTYPE HTML> <HTML> <head> <title>{{ title }} </title> </head> <body> <h1>{{ title }}</h1>; {{ content }} </body> </html>

Шаблонные теги {{ title }} и {{ content }} отображают значения, переданные из представления.

Подача статических файлов

Статические файлы, такие как CSS, JS и изображения, должны находиться в папке static в каждом приложении.

В файле settings.py добавьте:

STATIC_URL = '/static/' STATICFILES_DIRS = [BASE_DIR / 'static'].

Это указывает Django, где искать статические файлы.

В шаблоне загружайте статические файлы с помощью:

{% load static %} <link rel="stylesheet" href="{% static 'css/style.css' %}">

Работа с формами

Формы позволяют пользователям отправлять данные в приложение. Давайте создадим простую форму ContactForm.

В файле pages/forms.py:

from django import forms class ContactForm(forms.Form): name = forms.CharField() email = forms.EmailField() message = forms.CharField(widget=forms.Textarea).

Это создаст форму с полями для имени, электронной почты и сообщения.

В файле views.py:

from .forms import ContactForm def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): # Обрабатываем форму здесь return redirect('home') else: form = ContactForm() return render(request, 'contact.html', {'form': form}).

Здесь происходит отправка формы и проверка данных.

Шаблон contact.html может отображать форму:

<form method="POST"&gt; {% csrf_token %} {{ form.as_p }} &lt;input type="submit" value="Submit"&gt; /form>.

Обязательно добавьте {% csrf_token %} для защиты от атак.

Интерфейс администратора

Django предоставляет встроенный интерфейс администратора для управления содержимым базы данных.

Сначала создайте суперпользователя:

python manage.py createsuperuser

Введите свое имя пользователя, электронную почту и пароль.

Теперь в файле pages/admin.py зарегистрируйте модели:

from django.contrib import admin from .models import HomePage admin.site.register(HomePage).

Теперь модель появится в интерфейсе администратора.

Запустите сервер dev и перейдите в /admin, чтобы войти в систему и управлять своими моделями.

Развертывание

Для развертывания онлайн настройте settings.py для использования в производстве и настройте WSGI с помощью веб-сервера, например Nginx и Gunicorn.

Некоторые ключевые производственные настройки:

DEBUG = False ALLOWED_HOSTS = ['www.mydomain.com'] STATIC_ROOT = BASE_DIR / ‘staticfiles’ SECURE_PROXY_SSL_HEADER

Для более быстрого развертывания используйте такие сервисы, как PythonAnywhere, Heroku, AWS Elastic Beanstalk для размещения проектов Django.

Заключение

На этом мы рассмотрели основы начала работы с Django! Мы создали новый проект, сделали простую модель и представления, отобразили шаблоны, обработали формы, обслужили статические файлы, настроили админку и подготовились к развертыванию.

Django очень мощный, и это лишь малая часть того, что он может делать. Некоторые другие области, которые стоит изучить дальше, включают:

Пользовательские модели пользователей и аутентификация Представления на основе классов для лучшего повторного использования кода Наборы запросов для доступа к данным и их фильтрации Тестирование с помощью модуля модульных тестов Django REST Framework для API Кэширование и оптимизация производительности

Официальная документация Django фантастична и содержит огромное количество информации. Не стесняйтесь развивать этот проект и превращать его в полноценное веб-приложение с дополнительными возможностями!

Если вам нравится моя работа и вы хотите помочь мне продолжать выпускать подобный контент, купите мне чашку кофе.

Если вы нашли этот пост интересным, найдите еще больше интересных постов на Learnhub Blog; мы пишем обо всем, что касается технологий, от облачных вычислений до Frontend Dev, кибербезопасности, искусственного интеллекта и блокчейна.