Django следует шаблону MTV (Модель-Шаблон-Представление) для веб-разработки. Вот разбивка каждого компонента:
Модель: определяет структуру данных и управляет взаимодействием с базой данных, позволяя хранить и извлекать данные без написания SQL-запросов вручную.
Шаблон: отвечает за рендеринг HTML и представление данных пользователю. Вы пишете HTML, смешанный с языком шаблонов Django (DTL), для отображения динамического контента.
Просмотр: действует как уровень бизнес-логики. Он соединяет Модель и Шаблон, обрабатывает запросы пользователей, взаимодействует с Моделью и возвращает ответ (часто HTML, визуализируемый из Шаблона).
Как работает цикл запрос-ответ в Django:
Шаг 1. Создайте новое приложение в Django.
После того, как вы настроили Django (как описано в предыдущей статье), давайте создадим новое приложение в вашем проекте.
Выполните следующие команды:
cd mysite python3 manage.py startapp core
Это создаст приложение с именем core внутри вашего проекта mysite. Ваша файловая структура теперь должна выглядеть так:
. ├── core │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── db.sqlite3 ├── manage.py └── mysite ├── asgi.py ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
Шаг 2. Зарегистрируйте свое приложение в файле настроек.
Чтобы Django узнал о новом приложении, вам необходимо добавить его в INSTALLED_APPS в mysite/settings.py:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'core', # add this line ]
Шаг 3. Создайте базовое представление.
Давайте создадим простое представление, которое возвращает «Hello, World!» сообщение.
Откройте файлviews.py внутри основного приложения и добавьте следующий код:
from django.http import HttpResponse def learn(request): return HttpResponse("Hello, World!")
Шаг 4. Сопоставьте URL-адреса с представлением.
Чтобы получить доступ к этому представлению через URL-адрес, вам необходимо сопоставить его в файле core/urls.py. Создайте этот файл, если он не существует, и добавьте следующее:
from django.urls import path from . import views urlpatterns = [ path('learn/', views.learn, name='learn'), ]
Затем добавьте URL-адреса основного приложения в основной файл mysite/urls.py:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('core/', include('core.urls')), # include the core app URLs ]
Теперь, если вы запустите сервер и посетите http://127.0.0.1:8000/core/learn/, вы должны увидеть «Hello, World!» отображается.
Шаг 5. Создайте и отрисуйте шаблон
from django.shortcuts import render def learn(request): context = {'name': 'Django'} return render(request, 'hello.html', context)
Это представление теперь передает переменную (имя) в шаблон с именем hello.html.
Шаг 6. Создайте каталог шаблонов и файл HTML.
В основном приложении создайте папку шаблонов и файл hello.html:
mkdir core/templates touch core/templates/hello.html
В файл hello.html добавьте следующий HTML-код
Hello Template Hello, {{ name }}!
Когда вы снова посетите URL-адрес обучения, вы должны увидеть «Привет, Джанго!» в браузере.
Шаг 7. Создайте базовую модель.
Давайте создадим простую модель Post для хранения сообщений в блоге.
В файле core/models.py добавьте следующий код:
from django.db import models class Post(models.Model): title = models.CharField(max_length=100) content = models.TextField() def __str__(self): return self.title
Эта постмодель имеет два поля: заголовок и содержание. Метод __str__ гарантирует, что объекты Post отображаются с их заголовками в администраторе или оболочке Django
Шаг 8. Примените модель к базе данных.
Чтобы создать соответствующую таблицу в базе данных, выполните следующие команды:
python3 manage.py makemigrations python3 manage.py migrate
Теперь Django создаст таблицу базы данных для модели Post.
Выполнив эти шаги, вы успешно создали базовое приложение Django с моделью, представлением и шаблоном. Теперь вы можете расширить эту основу, добавив дополнительные функции, такие как обработка вводимых пользователем данных, улучшение дизайна и повышение интерактивности приложения.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3