Kemahiran konfigurasi URL dalam rangka kerja Django (Bahagian 2)

王林
Lepaskan: 2023-06-18 08:03:20
asal
1628 orang telah melayarinya

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.

  1. Padanan URL Ungkapan Biasa

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'),
Salin selepas log masuk

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.

  1. Mengendalikan parameter

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'),
Salin selepas log masuk

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})
Salin selepas log masuk

Selepas borang diserahkan, Kami menggunakan parameter request.POST untuk mengakses data borang. Jika pengesahan data borang lulus, anda boleh melakukan operasi yang diperlukan.

  1. Ubah hala

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')
Salin selepas log masuk

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.

  1. Mengendalikan Fail Statik

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/",
]
Salin selepas log masuk

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.

  1. URL Dinamakan

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'),
Salin selepas log masuk

Sekarang, kita boleh menamakannya article_list:

url(r'^articles/$', 'myapp.views.article_list', name='article_list'),
Salin selepas log masuk

Dalam fungsi lihat, kami URL Dinamakan boleh digunakan untuk menjana URL:

from django.urls import reverse

def some_view(request):
    url = reverse('article_list')
    # 执行其他操作
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan