0Pricing
Python Academy · Урок

Представления и URL-адреса

Направляйте запросы к представлениям

«Представления и URL-адреса» — бесплатный урок Python Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Что такое представление?

Представление Django — это функция (или класс), которая принимает веб-запрос и возвращает веб-ответ. Представления содержат логику страницы и находятся в файле views.py приложения.

from django.http import HttpResponse

def home(request):
    return HttpResponse('Hello, world!')
print('A view takes request, returns response')

Аргумент request

Каждое представление получает объект request, содержащий сведения о входящем запросе: метод, данные GET/POST, пользователя и многое другое.

from django.http import HttpResponse

def info(request):
    return HttpResponse('Method: ' + request.method)
print('request carries the incoming data')

Шаблоны URL

Файл urls.py приложения сопоставляет пути URL с представлениями с помощью списка urlpatterns и функции path().

# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),
]
print('path maps a URL to a view')

Именование URL

Присвойте шаблону параметр name, чтобы ссылаться на него в других местах, не прописывая путь напрямую.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]
print("name='home' lets you reference it later")

Параметры URL

Извлекайте части URL с помощью преобразователей, например <int:post_id>. Извлечённое значение передаётся в представление.

from django.urls import path
from . import views

urlpatterns = [
    path('post/<int:post_id>/', views.detail, name='detail'),
]
print('post/5/ -> detail(request, post_id=5)')

Чтение параметра

Извлечённое значение поступает как именованный аргумент, соответствующий имени преобразователя.

from django.http import HttpResponse

def detail(request, post_id):
    return HttpResponse('Post ' + str(post_id))
print('View receives post_id')

Подключение URL приложений

Корневой файл urls.py проекта подключает URL каждого приложения с помощью include(), сохраняя модульность маршрутизации.

# mysite/urls.py
from django.urls import path, include

urlpatterns = [
    path('blog/', include('blog.urls')),
]
print('include() wires up app urls')

Отображение шаблонов

Сокращённая функция render() объединяет шаблон с контекстным словарём и возвращает HttpResponse.

from django.shortcuts import render

def home(request):
    return render(request, 'home.html', {'name': 'Alice'})
print('render combines template + context')

Вспомогательные средства для 404

get_object_or_404() получает объект или вызывает ошибку 404, если объект отсутствует. Это распространённый и безопасный шаблон.

from django.shortcuts import get_object_or_404, render
from .models import Post

def detail(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    return render(request, 'detail.html', {'post': post})
print('get_object_or_404 handles missing data')

Обратное построение URL

В Python функция reverse('detail', args=[5]) строит URL по имени шаблона. В шаблонах то же самое делает тег {% url %}.

from django.urls import reverse
# reverse('detail', args=[5]) -> '/blog/post/5/'
# In a template: {% url 'detail' post.id %}
print('reverse builds URLs from names')

Представления на основе классов

Django также предлагает представления на основе классов, например ListView и DetailView, которые обрабатывают распространённые сценарии с меньшим количеством кода.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post
print('ListView lists objects automatically')

Быстрая проверка

Проверьте свои знания о представлениях и URL.

Итоги

Вы настроили маршрутизацию запросов к представлениям.

  • Представления принимают request и возвращают ответ
  • urlpatterns и path() сопоставляют URL с представлениями, при необходимости используя параметр name
  • Преобразователи, например <int:id>, извлекают части URL
  • include() подключает URL приложений, а render() и get_object_or_404() являются удобными сокращёнными функциями

Часто задаваемые вопросы

Урок «Представления и URL-адреса» бесплатный?

Да — полный текст урока «Представления и URL-адреса» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Представления и URL-адреса»?

Направляйте запросы к представлениям Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Представления и URL-адреса»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Проекты и приложения
  2. Модели и миграции
  3. Представления и URL-адреса
  4. Административная панель Django
← Назад к Python Academy