Django3中在urls.py文件中定义路由,当收到客户端请求的时候,django会把路由地址与urls.py中定义的路径相比对,执行匹配的路径所指向的views中的方法。 对于这些定义的路径,可以设置一个名称,用来在模板中生成连接地址。 urls.py
from django.urls import path
from . import views
urlpatterns = [
path('plist/', views.plist),
path('ilist/<int:project_id>', views.ilist, name='ilist'),
path('project/', views.project),
path('item/<int:project_id>', views.item),
path('status/', views.status),
]
在模板中调用方式: ilist.html
{% for p in projects %}
<a href="{% url 'ilist' p.id %}">{{ p.name }}</a>
{% endfor %}
这里的projects是模型返回的结果集,里面的ilist是在urls.py中path里定义的。 在这里后面携带了一个参数p.id,是project模型的编号。这里也可以直接用数字作为参数。
views.py
from django.shortcuts import redirect
from django.urls import reverse
def go(request):
url = reverse("ilist",args=(1,))
return redirect(url)
|