Cách sử dụng định tuyến động với Django
Nếu không có định tuyến động, việc điều hướng các trang web sẽ rất khó khăn. Bạn sẽ phải nhập đường dẫn đầy đủ của mọi trang bạn truy cập trên trình duyệt. Thật là một trải nghiệm người dùng tồi tệ.
Bộ định vị tài nguyên đồng nhất động (URL), cho phép bạn điều hướng đến các trang khác nhau trên một ứng dụng chỉ bằng một nút bấm. Django giúp bạn dễ dàng thiết kế các URL động. Nó có một mô-đun Cấu hình URL (URLconf) kết nối các biểu thức URL với các chế độ xem.
Tất cả mã trong URLconf đều theo cú pháp Python, giúp dễ dàng tạo URL động. Hãy cùng tìm hiểu thêm về URL động bằng cách xây dựng dự án Django.
Mục Lục
1. Tạo Dự án Django
Đầu tiên, tạo một dự án và ứng dụng (app) Django.
Đặt tên cho ứng dụng của bạn Đồng hồ Boma. Ứng dụng sẽ thu thập vị trí, mô tả và số lượng cư dân từ các khu vực lân cận khác nhau. Tạo một mô hình có tên Khu vực lân cận. Sử dụng mô hình để thêm thông tin về các vùng lân cận vào cơ sở dữ liệu. Tìm hiểu cách tạo mô hình trong Django và cơ sở dữ liệu nếu bạn chưa quen.
Tiếp theo, tạo một chức năng xem cho các vùng lân cận.
2. Tạo một chức năng xem
Trong Django, các khung nhìn là các hàm Python nhận các yêu cầu HTTP và trả về các phản hồi. Trên trang web do Django cung cấp, các lượt xem thực hiện các nhiệm vụ và nhiệm vụ khác nhau.
Để thực hiện một chế độ xem, bạn phải gọi nó qua một URL. URL là một đường dẫn duy nhất đến một tài nguyên trên web. Tài nguyên có thể là một trang HTML, hình ảnh hoặc một điểm cuối API.
Tạo một URL truy xuất dữ liệu vùng lân cận dựa trên các tham số được truyền vào. Để làm như vậy, bạn có thể sử dụng khóa chính (pk) hoặc Nhận dạng (id) để lấy thông tin. Bạn sẽ sử dụng một mẫu để làm điều này.
Bạn có thể tạo các dạng xem bằng cách xác định chúng trong một tệp có tên views.py trong thư mục của ứng dụng. Bắt đầu bằng cách nhập kết xuất chức năng từ Django để hiển thị dữ liệu tại URL. Cũng nhập Khu vực lân cận mô hình từ models.py.
from django.shortcuts import render
from .models import NeighbourHood
Tiếp theo, tạo một chức năng xem có tên Trang Chủ hiển thị tất cả các vùng lân cận trên mẫu nhà. Các NeighborHood.objects.all () hàm nhận dữ liệu cho tất cả các vùng lân cận từ cơ sở dữ liệu.
def home(request):
neighborhoods = NeighbourHood.objects.all()
return render (request, "home.html", {'neighborhoods':neighborhoods})
Ngoài ra, hãy tạo một chức năng xem cho join_hood điều đó sẽ hiển thị thông tin của vùng lân cận. Các NeighbourHood.objects.get (id = id) hàm yêu cầu dữ liệu theo ID. Thông tin sau đó được hiển thị trên một mẫu.
def join_hood(request, id):
neighborhood = NeighbourHood.objects.get(id=id)
return render (request, 'join_hood.html', {'neighborhood':neighborhood})
Sau đó, khi bạn điều hướng đến một vùng lân cận, bạn sẽ có thể xem thông tin hồ sơ của nó.
3. Tạo URL động
Bây giờ bạn có thể tạo một URL động cho chức năng xem mà bạn đã tạo.
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatternsurlpatterns = [
path ('home', views.home, name='home'),
path ('join_hood/<str:id>/', views.join_hood, name='join_hood'),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
Nhập khẩu đường dẫn từ các URL Django để tạo đường dẫn cho chế độ xem. Sau đó nhập các chức năng xem từ views.py.
Các join_hood URL có trình giữ chỗ trong dấu ngoặc nhọn:
Dấu ngoặc nhọn thường bao gồm thông số kỹ thuật của bộ chuyển đổi. Đặc điểm kỹ thuật có thể là một chuỗi (str) hoặc số nguyên (int). Django cũng cung cấp sên, đường dẫnhoặc số nhận dạng duy nhất trên toàn cầu (uuid). Đặc tả giới hạn loại biến hoặc số ký tự được chuyển trong URL vào chế độ xem.
Đặt tên cho các URL sẽ giúp xác định chúng trên các mẫu.
Các tĩnh và staticfiles nhập hiển thị các tệp tĩnh trên các đường dẫn URL. Tìm hiểu thêm về cách cấu trúc các tham số URL trong tài liệu Django chính thức.
4. Thêm URL vào Mẫu
Khi bạn đã thêm chức năng xem vào URL, hãy tạo một mẫu HTML để hiển thị dữ liệu. Bạn đặt tên cho mẫu join_hood.html.
{% extends "base.html" %}{% load static %}
{% block content %}
<div class="card mb-3" style="max-width:fit content;">
<div class="row g-0">
<div class="col-md-4">
<div class="col-md-8" >
<div class="card-body">
<h5 class="card-title"> Welcome!</h5>
<p class="card-text pt-4"> Name: {{neighbourhood.name}}</p>
<p class="card-text pt-4"> Location: {{neighbourhood.location}}</p>
<p class="card-text pt-4"> Description: {{neighbourhood.description}}</p>
<p class="card-text pt-4"> Health Tel:{{neighbourhood.health_tell}}</p>
<p class="card-text pt-4"> Police Number: {{neighbourhood.police_number}}</p>
<p class="card-text pt-4"> Residents : {{neighbourhood.Count}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
Tạo join_hood mẫu trong thư mục ứng dụng để hiển thị dữ liệu vùng lân cận. Đầu tiên, hãy mở rộng base.html mẫu với các biểu định kiểu (bootstrap) mà bạn sẽ sử dụng để tạo kiểu cho mẫu. Sau đó, hiển thị các biến sẽ hiển thị thông tin trên trang.
Tiếp theo, tạo một home.html mẫu nơi bạn sẽ hiển thị tất cả các vùng lân cận.
{% extends 'base.html' %}{% load static %}
{% block content %}
<div class="container" style="color:black;">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.neighborhood.name}}">
<div class="row">
{% for neighborhood in neighborhoods %}
<div class="col-md-4">
<div class="card mb-4" style="min-height:340px">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.hood.name}}">
<div class="card-body">
<h5 class="card-title">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{neighborhood.Count}} member{{neighborhood.members.count|pluralize}}</span>
</h5>
<p class="card-text">{{neighborhood.description}}</p>
<p class="card-text">{{neighborhood.member.Count}}</p>
<a href="{% url 'join_hood' neighborhood.id %}" class="btn btn-primary btn-sm">Join Hood</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
Trên trang chủ, hiển thị tất cả thông tin bạn muốn hiển thị về các vùng lân cận. Bạn sẽ thêm một nút và một thẻ liên kết trên trang chủ. Thẻ liên kết có URL Tên và ID vùng lân cận.
Khi được nhấp, nút sẽ điều hướng đến vùng lân cận của ID đó. Mẫu nhà xuất hiện tại URL http://127.0.0.1:8000/home/. Hình ảnh dưới đây minh họa trang này:
5. Kiểm tra định tuyến động
Bây giờ, bạn có thể kiểm tra xem định tuyến động có hoạt động trên mẫu hay không. Khi bạn nhấp vào tham gia mui xe nút, nó điều hướng đến join_hood mẫu. Các join_hood mẫu hiển thị thông tin hồ sơ về vùng lân cận bạn đã chọn.
Bạn cũng sẽ thấy ID của vùng lân cận được hiển thị trên URL của trình duyệt http://127.0.0.1:8000/join_hood/2/
Nó sẽ xuất hiện như hình dưới đây:
Xin chúc mừng! Bạn đã tạo một URL động.
Tại sao sử dụng URL Django?
URL động là một tính năng quan trọng trong các ứng dụng web. Django giúp bạn dễ dàng thiết kế URL theo nhu cầu của mình. Nó loại bỏ những hạn chế mà bạn có thể liên kết với các khuôn khổ khác.
Mô-đun URLconf có đầy đủ các tài nguyên hỗ trợ tạo URL Django. Nó cũng giúp việc phân phát các tệp tĩnh trên các mẫu dễ dàng hơn và cải thiện khả năng xử lý lỗi.
Django có các tính năng khác được thiết kế để tối ưu hóa các ứng dụng phụ trợ. Nó tự động hóa xác thực người dùng, quản trị nội dung và bản đồ trang web, trong số các tính năng khác.