django动态路由传参跳转

[复制链接]
查看: 1475   回复: 0

307

主题

307

帖子

1714

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1714
2024-2-16 21:49:22   显示全部楼层   阅读模式  
传参跳转.jpg

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>

回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司