Лекція 11. Створення веб застосунку за допомогою фреймворку Django

Сайт: Навчально-інформаційний портал НУБіП України
Курс: Кросплатформне програмування (Python)
Книга: Лекція 11. Створення веб застосунку за допомогою фреймворку Django
Надруковано: Гість-користувач
Дата: субота, 7 червня 2025, 19:54

Опис

Встановлення та основні поняття Django. Створення та структура проекту.
Створення застосунку Django. Відстежування URL адрес. Вивід тексту на сайт.
Розробка моделей. Проведення міграцій. Панель адміністратора. Отримання та
вивід даних із БД.

1. Встановлення та основні поняття Django

Встановлення Django:
Для встановлення Django, скористайтеся командою:

pip install django

Перевірка версії:

django-admin --version
Основні поняття Django:

Проект Django: Веб-додаток або набір додатків, які працюють разом. Проект зазвичай містить файли налаштувань, конфігурацію URL та базові налаштування для розробки.

Застосунок Django: Модуль, що виконує певну функцію в рамках проекту (наприклад, обробка користувачів або блоги).Створення проекту:
Щоб створити новий проект Django, використовується команда:

django-admin startproject myproject


Це створить структуру файлів проекту, включаючи:

manage.py — утиліта для керування проектом.

Директорії проекту з файлами налаштувань (наприклад, settings.py, urls.py, wsgi.py).

Структура проекту:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

Створення застосунку Django
Для створення застосунку в рамках проекту використовується команда:

python manage.py startapp myapp
Ця команда створює основну структуру для застосунку:

myapp/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py


Загальна структура проекту


Налаштуємо відображення.
У файлі myapp/views.py можна додати відображення home.

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
def home(request):
    return HttpResponse("Hello, Django!")

Відстежування URL адрес
У файлі myapp/urls.py визначаються URL-шляхи для вашого проекту. Наприклад:

from django.urls import path
from . import views

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


Тепер потрібно зареєструвати myapp у myproject
Додамо myapp у файл 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',
    'myapp',  # Add your app here
]


Додамо myapp/urls до проєкта використовуючи include

"""
URL configuration for myproject project.

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/5.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),  # Include your app's URLs
]

Запуск проекту:

python manage.py runserver



Використання шаблонів.

В myapp створемо папку templates та додамо файл  home.html з наступним кодом:

<h1>
  Hello, world!
</h1>

<style>
  h1 {
    color: blue;
  }
</style>

в myapp/views змінемо HttpResponse на функцію render. Функці render використовує шаблони як відповідь на запит з браузера.

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
def home(request):
    return render(request, 'home.html')


Тепер результат у браузері буде виглядати так:

2. Розробка моделей

Міграція баз даних (БД) - це процес переміщення даних та структури бази даних
з одного середовища або системи у інше. Цей процес може включати в себе різні
аспекти, такі як:

  • Переміщення даних: Це означає копіювання і перенесення фактичних даних з
    однієї БД до іншої. Це включає в себе таблиці, записи, зв'язки між даними тощо.
  • Переміщення схеми: Це означає створення таблиць, індексів, виділень інших
    об'єктів бази даних в новій системі так, щоб вони відповідали структурі і схемі
    попередньої БД.
  • Актуалізація даних: Іноді, під час міграції, доводиться проводити трансформації
    або обробку даних для забезпечення відповідності новій схемі чи вимогам
    додатка.
  • Тестування та верифікація: Після міграції важливо провести тестування для
    переконанняся, що дані були правильно перенесені і що нова система працює
    коректно.

Міграція баз даних може бути необхідною з різних причин, таких як оновлення
програмного забезпечення, перенесення даних в хмару, консолідація баз даних,
а також для забезпечення безпеки і дотримання вимог щодо зберігання даних.


Важливо правильно спланувати та виконати міграцію, щоб уникнути втрати
даних та збоїв в роботі системи.

У Django, моделі відповідають за структуру бази даних. Вони визначають таблиці та зв'язки між ними.
Наприклад:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

    def __str__(self):
        return self.title

Проведення міграцій
Міграції використовуються для створення або оновлення таблиць в базі даних, коли змінюються моделі.

Для створення міграцій:

python manage.py makemigrations


Для застосування міграцій:

python manage.py migrate

Для отримання даних з бази даних у Django використовується ORM (Object-Relational Mapping).
Приклад:

from .models import Post

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

У шаблоні home.html можна вивести дані:

<ul>
    {% for post in posts %}
        <li>{{ post.title }}</li>
    {% endfor %}
</ul>

3. Панель адміністратора

Django має вбудовану панель адміністратора, яка дозволяє управляти даними через веб-інтерфейс.
Щоб використовувати панель адміністратора:

Спочатку потрібно зареєструвати моделі в admin.py:

from django.contrib import admin
from .models import Post

admin.site.register(Post)


Далі створіть суперкористувача:

python manage.py createsuperuser


Перейдіть на /admin і увійдіть, щоб управляти даними.

Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання