1、view.py路由里面除了request还可以传递其他参数,而这个参数往往来自url路由里面
def userDetail(request, uid):
# users = userMode.objects.all()
user = userMode.objects.get(pk=uid) # pk :primary key 主键缩写得意思
# usert=userMode.objects.all()
# print('uid', uid,'字典情况',user,usert) 路由传递一个参数
return render(request, 'userDetail.html', {'user': user})
# def userDetail(request):
# # user = userMode.objects.get(pk=uid) # pk :primary key 主键缩写得意思
# return render(request, 'userDetail.html')
# 路由传递多个参数
def user_view(request, a, b):
return HttpResponse(f'a:{a} - b:{b}')
2.urls.py路由文件里面可以用尖括号书写传递参数
from django.urls import path, include
from APP.views import *
urlpatterns = [
# 首页
# path('list/', APP.views.index)
path('index/', index, name='index'),
path('userList/', userList, name='userList'),
path('userDetail/<int:uid>/', userDetail, name='userDetail'),
# 多参数传递路由
path('userView/<int:a>/<int:b>/', user_view, name='userView')
]
3.再渲染模板里面的html文件通过{% %}来表达动态路由情况
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<hr>
<a href="/user/index/">a标签得方式-返回首页</a>
<hr>
<a href="{% url 'Uapp:index' %}">反向解析的方式 进入首页页面</a>
<br>
{#<a href="{% url 'Uapp:userDetail' %}">进入用户详情</a>#}
<hr>
<ul>
{% for user in users %}
<li style="border: 1px solid red;padding: 10px;margin: 10px;width: 100px">
<a href="{% url 'Uapp:userDetail' user.id %}">
{{ user.name }},{{ user.age }}
</a>
</li>
{% endfor %}
</ul>
</body>
</html>
|