Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Panduan untuk konfigurasi URL dalam rangka kerja Django

Panduan untuk konfigurasi URL dalam rangka kerja Django

王林
王林asal
2023-06-17 09:33:103148semak imbas

Django ialah rangka kerja aplikasi web yang berkuasa dan konfigurasi URL ialah bahagian yang sangat kritikal dalam rangka kerja Django. Artikel ini akan memperkenalkan pengetahuan asas konfigurasi URL dan kaedah pelaksanaan khusus serta senario penggunaannya dalam rangka kerja Django.

1. Pengetahuan asas tentang konfigurasi URL

URL adalah singkatan dari Uniform Resource Locator (Uniform Resource Locator) Ia adalah alamat unik yang digunakan untuk mengenal pasti sumber di Web. nama domain dan laluan .

Dalam rangka kerja Django, konfigurasi URL merujuk kepada proses mengikat permintaan klien kepada fungsi paparan yang sepadan. Apabila pelanggan menghantar permintaan, Django akan mencari fungsi paparan yang sepadan berdasarkan peraturan yang ditakrifkan dalam konfigurasi URL, dan menyerahkan permintaan kepada fungsi paparan ini untuk diproses. Oleh itu, peranan konfigurasi URL adalah untuk mengedarkan kepada fungsi paparan yang berbeza untuk laluan permintaan yang berbeza.

2. Cara melaksanakan konfigurasi URL

Dalam rangka kerja Django, konfigurasi URL boleh dilaksanakan dalam dua cara: paparan berasaskan fungsi dan paparan berasaskan kelas.

  1. Paparan berasaskan fungsi

Paparan berasaskan fungsi merujuk kepada mengikat terus laluan permintaan kepada fungsi yang sepadan Kaedah mengikat ini sangat mudah dan pelaksanaan kodnya Seperti berikut :

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
]

Dalam pelaksanaan kod di atas, pembolehubah urlpatterns baharu ditakrifkan dengan mengimport modul laluan dalam rangka kerja Django ini ialah senarai, di mana setiap elemen adalah laluan dan fungsi paparan. Sebagai contoh, elemen pertama mewakili pengikatan laluan kosong (iaitu, apabila tiada maklumat laluan selepas nama domain) dengan indeks fungsi paparan, elemen kedua mewakili pengikatan laluan /about/ dengan fungsi pandangan tentang, dan elemen ketiga mewakili Menunjukkan bahawa laluan /contact/ terikat pada kenalan fungsi lihat.

  1. Paparan berasaskan kelas

Paparan berasaskan kelas merujuk kepada mengikat terus laluan permintaan kepada kaedah kelas yang sepadan ini dibandingkan dengan pandangan berasaskan fungsi . Paparan lebih fleksibel dan mudah untuk dikembangkan Pelaksanaan kod adalah seperti berikut:

from django.urls import path
from .views import IndexView, AboutView, ContactView

urlpatterns = [
    path('', IndexView.as_view(), name='index'),
    path('about/', AboutView.as_view(), name='about'),
    path('contact/', ContactView.as_view(), name='contact'),
]

Dalam pelaksanaan kod di atas, pembolehubah urlpatterns baharu ditakrifkan dengan mengimport kelas IndexView, AboutView dan ContactView dalam modul pandangan , di mana setiap elemen Mereka semua adalah hubungan yang sepadan antara laluan dan pandangan kelas. Sebagai contoh, elemen pertama mewakili pengikatan laluan kosong (iaitu, apabila tiada maklumat laluan selepas nama domain) dengan paparan kelas IndexView, elemen kedua mewakili pengikatan laluan /about/ dengan paparan kelas AboutView dan elemen ketiga mewakili Menunjukkan bahawa laluan /contact/ terikat pada paparan kelas ContactView.

3. Senario penggunaan konfigurasi URL

Konfigurasi URL biasanya digunakan untuk menyelesaikan dua masalah berikut:

  1. Permintaan pengedaran

Apabila pelanggan menghantar permintaan, rangka kerja Django akan menyerahkan permintaan kepada konfigurasi URL untuk penghuraian, dan kemudian memajukan permintaan itu kepada fungsi paparan atau kaedah kelas yang sepadan untuk diproses. Konfigurasi URL adalah seperti penghala, bertanggungjawab untuk menghalakan permintaan klien ke fungsi pengendali yang betul.

  1. Jana URL

Selain mengedarkan permintaan, konfigurasi URL juga sering digunakan untuk menjana URL. Oleh kerana rangka kerja Django membolehkan kami merujuk kepada laluan URL tertentu melalui nama URL, nama URL ini akan ditukar secara automatik kepada laluan URL yang sepadan. Contohnya:

<a href="{% url 'about' %}">关于我们</a>

Dalam kod di atas, kami merujuk kepada laluan URL bernama 'about' melalui teg templat {% url 'about' %}. /.

4. Aplikasi lanjutan konfigurasi URL

Dalam rangka kerja Django, selain digunakan untuk pengedaran permintaan asas dan penjanaan URL, konfigurasi URL juga boleh digunakan pada senario lanjutan berikut:

  1. Melalui parameter URL

Dalam konfigurasi URL, kita boleh menentukan jenis pembolehubah dan nama pembolehubah laluan URL dengan menggunakan 3346a694ac8a048610f49bd53cd0ec6c. Contohnya:

from django.urls import path
from .views import post_detail

urlpatterns = [
    path('post/<int:pk>/', post_detail, name='post_detail'),
]

Dalam kod di atas, kami menggunakan 35fd11114e6d69520106198971ac7ac0 untuk mentakrifkan parameter integer bagi laluan post_detail. Parameter ini dipisahkan oleh titik bertindih ke penghujung laluan dan diluluskan sebagai parameter dalam fungsi paparan.

  1. Padanan aksara URL

Dalam konfigurasi URL, kita boleh menggunakan ungkapan biasa untuk memadankan aksara tertentu bagi laluan permintaan Kaedah ini sangat fleksibel. Contohnya:

from django.urls import re_path
from .views import search

urlpatterns = [
    re_path(r'^search/(?P<keyword>w+)/$', search, name='search'),
]

Dalam kod di atas, kami menggunakan kaedah re_path untuk menentukan peraturan padanan laluan, yang mengandungi parameter kata kunci dan boleh memadankan aksara laluan yang mengandungi huruf, nombor dan garis bawah.

  1. Ruang nama URL

Dalam rangka kerja Django, ruang nama URL merujuk kepada pengumpulan URL satu atau lebih aplikasi untuk keterlihatan yang lebih baik dalam URL Pengurusan. Contohnya:

from django.urls import path, include
from myapp1.views import index as myapp1_index
from myapp2.views import index as myapp2_index

myapp1_patterns = [
    path('', myapp1_index, name='index'),
]

myapp2_patterns = [
    path('', myapp2_index, name='index'),
]

urlpatterns = [
    path('myapp1/', include((myapp1_patterns, 'myapp1'), namespace='myapp1')),
    path('myapp2/', include((myapp2_patterns, 'myapp2'), namespace='myapp2')),
]

Dalam kod di atas, kami menggunakan fungsi include untuk memperkenalkan konfigurasi URL setiap aplikasi ke dalam rangka kerja Django dan menetapkan ruang nama untuk konfigurasi URL setiap aplikasi. Ini memastikan bahawa tidak akan ada percanggahan antara URL dalam aplikasi yang berbeza, dan juga memudahkan rujukan URL dalam templat.

Ringkasan

Artikel ini memperkenalkan pengetahuan asas, kaedah pelaksanaan dan aplikasi lanjutan konfigurasi URL dalam rangka kerja Django saya harap ia dapat membantu pembaca memahami dengan lebih baik konfigurasi URL dalam rangka kerja Django dan menjadi mampu menggunakan konfigurasi URL secara fleksibel dalam pembangunan sebenar.

Atas ialah kandungan terperinci Panduan untuk konfigurasi URL dalam rangka kerja Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn