Rangka kerja Django ialah rangka kerja pembangunan web yang sangat disesuaikan yang menggunakan sistem konfigurasi URL yang fleksibel untuk membolehkan pembangun mengurus struktur URL aplikasi dengan mudah. Dalam artikel sebelumnya, kami membincangkan teknik konfigurasi URL asas dalam Django Artikel ini akan memperkenalkan lagi teknik yang lebih maju untuk membantu pembaca lebih memahami dan menggunakan sistem konfigurasi URL Django.
Django membenarkan penggunaan ungkapan biasa dalam konfigurasi URL, yang amat berguna apabila berurusan dengan struktur URL yang kompleks. Contohnya, jika anda ingin memadankan URL berikut:
http://example.com/2008/12/25/my-post
anda boleh menggunakan konfigurasi URL berikut:
url(r'^(?P<year>d{4})/(?P<month>d{2})/(?P<day>d{2})/(?P<slug>[-w]+)/$', 'blog.views.post_detail'),
di mana ungkapan biasa ^(?P<year>d{4})/(?P<month>d{2})/(?P<day>d{2})/(?P<slug>[-w]+)/$
akan padankan dengan tahun, bulan, tarikh dan tajuk artikel. Dengan menggunakan sintaks (?P<name>pattern)
, kami boleh mentakrifkan setiap kumpulan yang sepadan dan menyampaikannya sebagai hujah kata kunci kepada fungsi paparan.
Selain menggunakan ungkapan biasa untuk pemadanan URL, kami juga boleh menggunakan alatan borang terbina dalam Django, yang boleh memproses data borang dan menghantarnya kepada fungsi pandangan. Untuk menghantar data borang ke fungsi paparan, kita perlu menggunakan konfigurasi URL berikut:
url(r'^contact/$', 'contact.views.contact'),
Dalam fungsi paparan, kita boleh menggunakan alat borang Django untuk mengendalikan parameter:
from django.shortcuts import render from contact.forms import ContactForm def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): # 处理表单数据 pass else: form = ContactForm() return render(request, 'contact.html', {'form': form})
Selepas borang diserahkan, Kami menggunakan parameter request.POST
untuk mengakses data borang. Jika pengesahan data borang lulus, anda boleh melakukan operasi yang diperlukan.
Dalam sesetengah kes, kami perlu mengubah hala pengguna ke URL lain. Contohnya, apabila pengguna berjaya menyerahkan borang, kami boleh mengubah hala mereka ke URL lain. Django menyediakan fungsi ubah hala pantas yang boleh digunakan dengan cara berikut:
from django.shortcuts import redirect def some_view(request): # 如果用户未登录,将其重定向到登录页面 if not request.user.is_authenticated: return redirect('login')
Dalam fungsi paparan di atas, kami menyemak sama ada pengguna sudah log masuk. Jika pengguna tidak log masuk, kami akan mengubah hala ke halaman log masuk. Parameter fungsi ubah hala boleh berupa rentetan URL atau URL bernama yang ditentukan. Dalam kes ini kita boleh menggantikan rentetan URL dengan nama URL.
Django juga menyediakan pemproses fail statik terbina dalam yang boleh kami gunakan untuk menyimpan dan menyediakan semua fail statik yang digunakan dalam aplikasi. Untuk melakukan ini, kita perlu menentukan direktori fail statik dalam fail settings.py
:
STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / "static", "/var/www/static/", ]
Di sini kami menentukan dua direktori fail statik: BASE_DIR / "static"
dan /var/www/static/
. Fail statik dalam semua direktori set boleh diakses melalui STATIC_URL
.
Apabila kami mentakrifkan konfigurasi URL, kami boleh menamakannya, yang membantu meningkatkan kebolehbacaan kod, kebolehselenggaraan dan kemudahan penggunaan. Sebagai contoh, jika kita ingin mentakrifkan fungsi paparan yang mengendalikan halaman senarai, konfigurasi URL adalah seperti berikut:
url(r'^articles/$', 'myapp.views.article_list'),
Sekarang, kita boleh menamakannya article_list
:
url(r'^articles/$', 'myapp.views.article_list', name='article_list'),
Dalam fungsi lihat, kami URL Dinamakan boleh digunakan untuk menjana URL:
from django.urls import reverse def some_view(request): url = reverse('article_list') # 执行其他操作
Dalam kod di atas, kami menggunakan fungsi reverse
untuk menjana URL yang sepadan dengan URL yang dinamakan. Fungsi ini akan mengembalikan rentetan URL yang dijana.
Ringkasan
Artikel ini memperkenalkan beberapa teknik konfigurasi URL lanjutan, termasuk padanan URL ungkapan biasa, pemprosesan parameter, ubah hala, memproses fail statik dan menamakan URL. Petua ini semuanya sangat berguna untuk meningkatkan prestasi dan kebolehselenggaraan aplikasi web. Sistem konfigurasi URL Django agak berkuasa, dan menguasai kemahiran ini sangat penting untuk menjadi pembangun Django yang cemerlang.
Atas ialah kandungan terperinci Kemahiran konfigurasi URL dalam rangka kerja Django (Bahagian 2). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!