Django动态路由实例

Django动态路由实例

先说需求:

比如我前端有两个按钮,点击按钮1跳转到user1的用户信息页面,按钮2跳转user2用户信息页面,但是他俩共用同一个视图层

直接上代码

路由层

urlpatterns = [
    path('user/<str:username>/', views.user_home, name='user_home'),
]

<str:username>:获取前端输入的内容,并传递给视图层

模板层

<button onclick="window.location.href='{% url 'Blog:user_home' username='user1' %}'">用户1信息</button>
<button onclick="window.location.href='{% url 'Blog:user_home' username='user2' %}'">用户2信息</button>

定义两个按钮作为跳转

视图层

def user_home(request, username):
    user_info = username
    print(username)
    return render(request, 'adv2.html', locals())

user_info:获取前端传递的username参数,并用locals()返回给adv2.html页面

渲染

adv2.html内容如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
我是{{ user_info }}
</body>
</html>

此时点击按钮1:

image-20240320120745419

点击按钮2:

image-20240320120807529

示例

实际应用中username的参数肯定也是不固定的,因此批量应用就需要用到for循环语法

前端按钮:

{% for adv in adv_list %}
<button onclick="window.location.href='{% url 'Blog:user_home' username=adv.id %}'">查看用户{{ adv.id }}信息</button>
{% endfor %}

从视图层传入adv_list的数据

def adv(request):
    adv_list = Adv.objects.all()
    return render(request, 'adv.html', locals())

user_home视图不变

def user_home(request, username):
    user_info = username
    print(username)
    return render(request, 'adv2.html', locals())

相关推荐

  1. Vue 实现动态

    2024-03-21 13:48:04       51 阅读
  2. 创建Django项目,实现视图,

    2024-03-21 13:48:04       36 阅读
  3. vue3如何实现动态

    2024-03-21 13:48:04       67 阅读
  4. 实验五:动态配置

    2024-03-21 13:48:04       52 阅读
  5. Django

    2024-03-21 13:48:04       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 13:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 13:48:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 13:48:04       82 阅读
  4. Python语言-面向对象

    2024-03-21 13:48:04       91 阅读

热门阅读

  1. ESP32通过USB/UART/ble/其他协议OTA报错解决

    2024-03-21 13:48:04       40 阅读
  2. git--首次提交本地代码到github

    2024-03-21 13:48:04       46 阅读
  3. 报错:npm WARN ERESOLVE overriding peer dependency

    2024-03-21 13:48:04       27 阅读
  4. bat 实现Windows系统服务看门狗

    2024-03-21 13:48:04       44 阅读
  5. PTA 字符串替换

    2024-03-21 13:48:04       43 阅读
  6. C# 中 判断指定2条线是否相交、重合等功能

    2024-03-21 13:48:04       43 阅读
  7. Linux 常用命令 cat

    2024-03-21 13:48:04       44 阅读
  8. 2024年最新地推网推拉新平台推荐

    2024-03-21 13:48:04       139 阅读