Featured image of post Django02. Основы Django - Модели, Представления и Шаблоны

Django02. Основы Django - Модели, Представления и Шаблоны

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

Введение в MTV архитектуру

Django использует архитектуру MTV (Model-Template-View):

  • Model - отвечает за данные и бизнес-логику
  • Template - отвечает за представление данных
  • View - обрабатывает запросы и возвращает ответы

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

  1. Создайте новое приложение в проекте:

    1
    
    python manage.py startapp myapp
    
  2. Добавьте приложение в settings.py:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myapp',  # Добавьте эту строку
    ]
    

Работа с моделями

Модели определяют структуру данных. Создайте модель в myapp/models.py:

1
2
3
4
5
6
7
8
9
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')

    def __str__(self):
        return self.title

Миграции

  1. Создайте миграцию:

    1
    
    python manage.py makemigrations myapp
    
  2. Примените миграцию:

    1
    
    python manage.py migrate
    

Представления (Views)

Представления обрабатывают запросы. Создайте в myapp/views.py:

1
2
3
4
5
6
from django.shortcuts import render
from .models import Article

def article_list(request):
    articles = Article.objects.all()
    return render(request, 'myapp/article_list.html', {'articles': articles})

Маршрутизация URL

  1. В myapp/urls.py (создайте файл):

    1
    2
    3
    4
    5
    6
    
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.article_list, name='article_list'),
    ]
    
  2. В основном urls.py проекта:

    1
    2
    3
    4
    5
    6
    7
    
    from django.contrib import admin
    from django.urls import include, path
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('articles/', include('myapp.urls')),
    ]
    

Шаблоны (Templates)

Создайте директорию myapp/templates/myapp/ и файл article_list.html:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
<head>
    <title>Список статей</title>
</head>
<body>
    <h1>Мои статьи</h1>
    <ul>
        {% for article in articles %}
        <li>
            <h2>{{ article.title }}</h2>
            <p>{{ article.content }}</p>
            <small>Опубликовано: {{ article.pub_date }}</small>
        </li>
        {% endfor %}
    </ul>
</body>
</html>

Админ-панель

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

    1
    
    python manage.py createsuperuser
    
  2. Зарегистрируйте модель в myapp/admin.py:

    1
    2
    3
    4
    
    from django.contrib import admin
    from .models import Article
    
    admin.site.register(Article)
    
  3. Перейдите на http://127.0.0.1:8000/admin/ для доступа к админке.

Заключение

Теперь вы знаете основы Django:

  • Создание приложений
  • Работа с моделями и миграциями
  • Написание представлений
  • Настройка URL-маршрутизации
  • Создание шаблонов
  • Использование админ-панели

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

comments powered by Disqus
Сделано с 💖
Создано при помощи Hugo
Тема Stack, дизайн Jimmy