Django — це потужний веб-фреймворк для створення веб-додатків на Python. Він слідує архітектурі model-view-controller (MVC), хоча використовує іншу номенклатуру: модель, вигляд та шаблон. У цьому підручнику ми розглянемо, як створити Django додаток і додати до нього вигляд.
Крок 1: Встановлення Django
Перед тим як створювати додаток на Django, переконайтесь, що Django встановлений у вашій системі. Ви можете зробити це за допомогою наступної команди:
pip install django
Також ви можете перевірити, чи встановлено Django, ввівши:
django-admin --version
Це має вивести версію Django, встановлену на вашій системі.
Крок 2: Створення проекту Django
Проект Django — це контейнер для ваших додатків Django. Можна сказати, що проект Django має кілька додатків, і кожне додаток виконує певну функцію великого проекту. Django використовує цю методологію для того, щоб зробити системи більш модульними, тобто проект можна легко поділити та розвивати окремо. Це також покращує повторне використання коду. Створити проект можна за допомогою такої команди:
django-admin startproject myproject
Це створить нову директорію з назвою myproject
з базовими файлами, необхідними для проекту Django:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py
Перейдіть в папку проекту:
cd myproject
Крок 3: Створення додатку Django
Додаток Django — це компонент проекту. Кожен додаток може містити моделі, вигляди, шаблони та статичні файли. Щоб створити додаток, виконайте наступну команду в директорії проекту:
python manage.py startapp myapp
Це створить нову директорію з назвою myapp
з такою структурою:
myapp/
migrations/
__init__.py
admin.py
apps.py
models.py
views.py
tests.py
urls.py
Крок 4: Реєстрація додатку в проекті
Після створення додатку, потрібно зареєструвати його в файлі settings.py
вашого проекту. Це необхідно, оскільки кожен додаток виконує свою функцію, і щоб Django admin знав, що додаток існує, ми вказуємо його в списку “INSTALLEDAPPS” файлу settings.py. Відкрийте myproject/settings.py
і додайте ваш додаток до списку `INSTALLEDAPPS`.
Знайдіть розділ INSTALLED_APPS
і додайте 'myapp'
:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # Додайте ваш додаток сюди і не забудьте кому після цього
]
Крок 5: Створення вигляду в додатку
Вигляд — це Python-функція, яка отримує веб-запит і повертає веб-відповідь. Відкрийте файл views.py
у директорії вашого додатку (myapp/views.py
) і створіть простий вигляд.
Наприклад, створимо вигляд, який повертає повідомлення "Hello, World!":
# myapp/views.py
from django.http import HttpResponse
def hello_world(request):
return HttpResponse("Hello, World!")
Крок 6: Прив’язка вигляду до URL
Ми зрозуміли, що вигляд отримує веб-запит і повертає веб-відповідь. Але для того, щоб вигляд отримав веб-запит, потрібно прив’язати його до шаблону URL в файлі urls.py директорії додатку.
У Django вигляди прив’язуються до конкретних URL. Нам потрібно створити шаблон URL для нашого вигляду hello_world
.
- В директорії
myapp
створіть файлurls.py
(якщо його ще немає). - Додайте наступний код до файлу
myapp/urls.py
:
# myapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello_world, name='hello_world'),
]
Це прив’яже URL /hello/
до вигляду hello_world
.
Детальне пояснення вищеописаної строки:
Давайте розглянемо рядок path('hello/', views.hello_world, name='hello_world')
цікавішим способом!
Уявіть собі:
Ви будуєте вебсайт і хочете додати нову сторінку з назвою “hello”.
Коли хтось відвідує цю сторінку, вони повинні побачити привітальне повідомлення "Hello, World!". Ця строка — це магія, яка реалізує це в Django!
Що відбувається тут?
path('hello/', ...)
:
- Уявіть, що це адреса або URL, яку люди введуть у своєму браузері, щоб відвідати вашу сторінку "hello".
'hello/'
означає, що коли хтось вводитьhttp:///hello/
, Django знає, що вони шукають цю спеціальну сторінку. Подумайте про це як про назву вулиці на карті — коли люди слідують за адресою, вони потрапляють на вашу сторінку.
2. views.hello_world
:
- Тут відбувається дія. Django має знати, що показати, коли хтось відвідує цей URL.
views.hello_world
— це функція у вашому файліviews.py
, яка визначає, що робити, коли користувач запитує цю сторінку "hello".- У нашому випадку,
hello_world
поверне повідомлення: "Hello, World!" для відображення на екрані користувача.
3. name='hello_world'
:
- Ця частина дає вашому маршруту псевдонім. Призначивши йому ім’я
'hello_world'
, ви можете зручно посилатись на цей URL пізніше в вашому проекті Django, як на скорочення. - Замість того, щоб запам’ятовувати всю частину
hello/
, ви можете просто використовувати цей URL за його псевдонімом. - Наприклад, у ваших шаблонах або виглядах ви можете використати
{% url 'hello_world' %}
, щоб посилатись на цю сторінку. Це схоже на те, як сказати: "Ей, Django, відправ мене на маршрут 'hello_world'!" без занепокоєння про фактичний URL.
Невеличкий поворот:
Отже, рядок path('hello/', views.hello_world, name='hello_world')
схожий на встановлення нового дорожнього знаку (URL) на вашому вебсайті, який веде до привітального повідомлення (функція hello_world
) і дає йому зручне для запам’ятовування ім’я.
Повна картина:
Щоб все це працювало, ось як ці елементи взаємодіють:
- Користувач запитує
http:///hello/
. - Django переглядає
urls.py
, щоб знайти відповідність дляpath('hello/', ...)
. - Django викликає функцію
hello_world
у файліviews.py
. hello_world
повертає відповідь, наприклад, "Hello, World!", користувачеві.- Назва шляху: Тепер, коли вам потрібно послатися на цю сторінку "hello", використовуйте
{% url 'hello_world' %}
в будь-якому місці вашого шаблону.
Це серце того, як Django обробляє маршрутизацію — зіставляючи URL з функцією, яка надає відповідь, яку ви хочете!
Крок 7: Зв'язок URL додатку з основними URL проекту
Тепер нам потрібно зв'язати конфігурацію URL додатку з основною конфігурацією URL проекту. Відкрийте файл myproject/urls.py
та додайте модуль myapp.urls
.
Оновіть список urlpatterns
, щоб він включав:
# myproject/urls.py
from django.contrib import admin
from django.urls import path, include # include необхідний для зв'язку URL додатків
Уявіть, що ви будуєте місто, і кожна будівля в цьому місті представляє різні функції чи частини вашого веб-додатку. Кожна будівля має свою унікальну адресу (URL), яку ви можете використовувати для відвідування. Тепер, щоб відвідати будь-яку будівлю в місті, вам потрібна карта — щось, що з'єднує всі ці адреси і допомагає вам орієнтуватися між ними.
У Django файл myapp/urls.py
— це як адресна книга для певної частини (або "будівлі") вашого веб-додатку, де визначаються всі URL для функцій цього додатку. Файл myproject/urls.py
, з іншого боку, це як центральний довідник міста або головна карта, яка містить усі адресні книги додатків (URLs).
Отже, коли ми зв'язуємо конфігурацію URL додатку (myapp.urls
) з основною конфігурацією URL проекту (myproject.urls
), ми, по суті, говоримо Django: "Гей, ось де знаходяться всі URL для мого додатку. Якщо потрібно надіслати запит до додатку, використовуйте цю карту!"
Це робить ваш проект чистішим, організованішим і легким для масштабування, оскільки кожен додаток має свою власну набір URL, але основна конфігурація проекту збирає їх усі в одному центральному місці.
Це як мати путівник по місту, який точно знає, де знаходиться кожна будівля, і як до неї дістатися!
Щоб це зробити, ви повинні додати оператор include
у файл myproject/urls.py
:
from django.urls import include, path
urlpatterns = [
path('myapp/', include('myapp.urls')),
]
Цей рядок говорить Django: “Будь-який запит, що починається з /myapp/
, має оброблятися конфігурацією myapp.urls
.” Це як поставити знак на карті міста, який говорить: “Щоб потрапити до myapp, йди сюди!”
Зв'язуючи ці URL, ваш веб-додаток стає більш модульним і легким для керування, забезпечуючи, що кожна “будівля” (додаток) точно знає, як спрямувати відвідувачів до потрібного місця!
Крок 8: Запуск серверу розробки
Тепер, коли все налаштовано, ви можете запустити сервер Django для перегляду змін. Виконайте наступну команду:
python manage.py runserver
Сервер запуститься, і ви повинні побачити такий вивід:
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Відкрийте браузер і перейдіть за адресою http://127.0.0.1:8000/hello/
. Ви повинні побачити повідомлення "Hello, World!".
Крок 9: Налаштування вигляду
Ви можете легко налаштувати вигляд, щоб він повертав більш складну відповідь, наприклад, відображаючи HTML шаблон.
- Спочатку створіть нову директорію під назвою
templates
у вашій директорії додатку (myapp/templates/
). - У папці
templates
створіть HTML файл під назвоюhello.html
.
Hello, World!
- Змініть ваш вигляд, щоб відображати цей шаблон:
# myapp/views.py
from django.shortcuts import render
def hello_world(request):
return render(request, 'hello.html')
Крок 10: Перевірка налаштованого вигляду
Тепер оновіть браузер. Ви повинні побачити повідомлення “Hello, World!” виведене в середині HTML сторінки.
Підсумки
У цьому посібнику ми пройшли через створення Django додатку та додавання простого вигляду до нього. Ми охопили:
- Встановлення Django
- Створення проекту та додатку
- Додавання вигляду та зв'язування його з URL
- Запуск серверу та тестування вигляду
- Налаштування вигляду за допомогою HTML шаблону
Маючи ці базові знання, ви тепер можете почати створювати більш складні Django додатки з динамічним контентом, моделями бази даних і багато чим іншим. Успіхів у програмуванні!
Перекладено з: How to create a Django app and add a view to it.