Лекція 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 і увійдіть, щоб управляти даними.
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання