0Pricing
Python Academy · Lekcja

Widoki i adresy URL

Kieruj żądania do widoków

Widoki i adresy URL to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Czym jest widok?

widok Django to funkcja (lub klasa), która przyjmuje żądanie internetowe i zwraca odpowiedź internetową. Widoki zawierają logikę stron i znajdują się w pliku views.py aplikacji.

from django.http import HttpResponse

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

Argument request

Każdy widok otrzymuje obiekt request zawierający szczegóły przychodzącego żądania: metodę, dane GET/POST, użytkownika i inne informacje.

from django.http import HttpResponse

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

Wzorce adresów URL

Plik urls.py aplikacji przypisuje ścieżki URL do widoków za pomocą listy o nazwie urlpatterns i funkcji path().

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

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

Nazywanie adresów URL

Nadaj wzorcowi wartość name, aby można było odwoływać się do niego w innych miejscach bez wpisywania ścieżki na sztywno.

from django.urls import path
from . import views

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

Parametry URL

Przechwytuj fragmenty adresu URL za pomocą konwerterów, takich jak <int:post_id>. Przechwycona wartość zostaje przekazana do widoku.

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)')

Odczytywanie parametru

Przechwycona wartość jest przekazywana jako argument nazwany odpowiadający nazwie konwertera.

from django.http import HttpResponse

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

Dołączanie adresów URL aplikacji

Główny plik urls.py projektu dołącza pliki urls poszczególnych aplikacji za pomocą include(), dzięki czemu routing pozostaje modularny.

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

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

Renderowanie szablonów

Skrót render() łączy szablon ze słownikiem kontekstu i zwraca obiekt HttpResponse.

from django.shortcuts import render

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

Pomocniki 404

get_object_or_404() pobiera obiekt lub zgłasza błąd 404, jeśli go nie ma. Jest to często stosowany i bezpieczny wzorzec.

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')

Odwracanie adresów URL

W języku Python funkcja reverse('detail', args=[5]) tworzy adres URL na podstawie nazwy wzorca. W szablonach to samo zadanie wykonuje tag {% 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')

Widoki oparte na klasach

Django oferuje również widoki oparte na klasach, takie jak ListView i DetailView, które obsługują typowe przypadki przy użyciu mniejszej ilości kodu.

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

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

Szybki sprawdzian

Sprawdź swoją wiedzę na temat widoków i adresów URL.

Podsumowanie

Skierowałeś żądania do widoków.

  • Widoki przyjmują obiekt request i zwracają odpowiedź
  • urlpatterns + path() przypisują adresy URL do widoków, opcjonalnie z użyciem wartości name
  • Konwertery takie jak <int:id> przechwytują fragmenty adresu URL
  • include() łączy adresy URL aplikacji, a render() i get_object_or_404() to przydatne skróty

Często zadawane pytania

Czy lekcja „Widoki i adresy URL” jest bezpłatna?

Tak — pełny tekst „Widoki i adresy URL” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Widoki i adresy URL”?

Kieruj żądania do widoków Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Widoki i adresy URL”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Projekty i aplikacje
  2. Modele i migracje
  3. Widoki i adresy URL
  4. Panel administracyjny Django
← Powrót do Python Academy