《学习笔记108》—— # Django # URL路径传参实现动态跳转

1. 目录和效果预览

目录页预览:
在这里插入图片描述
效果预览
Index页面

---index.html---

跳转页面

---user.html---

2. 后端文件撰写

models.py文件如下。创建User类,创建数据列【name】、【age】、【addr】、【profession】。

from django.db import models

# Create your models here.

class User(models.Model):
  name = models.CharField(max_length=50)
  age = models.CharField(max_length=3)
  addr = models.CharField(max_length=50)
  profession = models.CharField(max_length=50)

views.py文件如下。定义Index和User两个方法,获取数据库对象。在User中接收id参数,并-1后作为数据库对象的索引。

from django.shortcuts import render
from sess.models import User

# Create your views here.
all_users = User.objects.all()
def Index(request):
  return render(request,"index.html",{'all_users':all_users})

def User(request,id):
  id = int(id)-1
  user = all_users[id]
  return render(request,"user.html",{'user':user})

urls.py文件如下。user页面接收一个参数,并将参数传入views中的user方法中。

from django.contrib import admin
from django.urls import path,re_path
from sess.views import Index,User

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^$',Index,name="index"),
    re_path(r'user/(\d+)',User,name='user'),
]

3. 前端文件撰写

index.html文件如下。在姓名展示一行中,将用户的id值传入到a标签中,该id值将传入到urls.py的user中。

<table border=1>
      <tr>
        <th>编号</th>
        <th>姓名</th>
      </tr>
      {% for user in all_users %}
      <tr>
        <td>{{ user.id }}</td>
        <td><a href="{% url 'user' user.id %}">{{ user.name }}</a></td>
      </tr>
      {% endfor %}
    </table>

user.html文件如下。动态展示不同用户的具体信息。

  <table border=1>
    <tr>
      <th>编号</th>
      <th>姓名</th>
      <th>年龄</th>
      <th>住址</th>
      <th>职业</th>
    </tr>
    <tr>
      <td>{{ user.id }}</td>
      <td>{{ user.name }}</td>
      <td>{{ user.age }}</td>
      <td>{{ user.addr }}</td>
      <td>{{ user.profession }}</td>
    </tr>
  </table>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Merrill He

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值