目的: 打开http://127.0.0.1:8000/home    点击查看详情转到 http://127.0.0.1:8000/detail-1-1.html实现查看具体信息

一,利用url路由系统的正则表达式传参数

  url(r'^detail-(?P<uid>\d+)-(?P<nid>\d+).html',views.detail),

  def detail(request,uid,nid):

    return

urls:

from django.contrib import admin
from django.urls import path
from cmbd import views
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', views.home),
path('home', views.home),
url(r'^detail-(?P<uid>\d+)-(?P<nid>\d+).html',views.detail),
]

views:

from django.shortcuts import render,redirect
user_dict = {
'1':{'name':'hrg','email':'hrg@163.com','pwd':'123'},
'2':{'name':'eric','email':'hrg@163.com','pwd':'111'},
'3':{'name':'hhh','email':'hrg@163.com','pwd':'222'},
'4':{'name':'kkk','email':'hrg@163.com','pwd':'123'},
} def home(request):
return render(request,'home.html',{'user_dict':user_dict,}) def detail(request,uid,nid):
detail_dict = user_dict[uid]
print(detail_dict)
return render(request,'detail.html',{'detail_dict':detail_dict,})

templates:

home.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{% for k,v in user_dict.items %}
<li>
<span>id:{{ k }}姓名:{{ v.name }}</span>
<a href="/detail-{{ k }}-1.html">查看详情</a>
</li>
{% endfor %}
</ul>
</body>
</html> detail.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户详情:</h1>
<ul>
{% for k,v in detail_dict.items %}
<li>{{ k }}:{{ v }}</li>
{% endfor %}
</ul>
</body>
</html>

二,利用URL地址栏?功能传参数

  /detail?uid=1&pid=2

urls:

from django.contrib import admin
from django.urls import path
from cmbd import views
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', views.home),
path('home', views.home),
path('detail',views.detail),
]

views:

from django.shortcuts import render,redirect
user_dict = {
'1':{'name':'hrg','email':'hrg@163.com','pwd':'123'},
'2':{'name':'eric','email':'hrg@163.com','pwd':'111'},
'3':{'name':'hhh','email':'hrg@163.com','pwd':'222'},
'4':{'name':'kkk','email':'hrg@163.com','pwd':'123'},
} def home(request):
return render(request,'home.html',{'user_dict':user_dict,}) def detail(request):
uid = request.GET.get('uid') #获取home.html中/detail?uid={{ k }}传来的值
detail_dict = user_dict[uid]
print(detail_dict)
return render(request,'detail.html',{'detail_dict':detail_dict,})

templates:

home.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{% for k,v in user_dict.items %}
<li>
<span>id:{{ k }}姓名:{{ v.name }}</span>
<a href="/detail?uid={{ k }}">查看详情</a>
</li>
{% endfor %}
</ul>
</body>
</html> detail.html <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户详情:</h1>
<ul>
{% for k,v in detail_dict.items %}
<li>{{ k }}:{{ v }}</li>
{% endfor %}
</ul>
</body>
</html>

  

												

分页传参数的两种形式,url正则 ?id=1的更多相关文章

  1. thinkphp的model的where条件的两种形式

    thinkphp的model的where查询时有两种形式. $model->field('id')->where('customer_num is null or customer_num ...

  2. thinkphp 3.2.3 入门示例2(URL传参数的几种方式)

    原文:thinkphp中URL传参数的几种方式 在thinkphp中,url传参合asp.net中原理类似,下面就单个参数和多个参数传递方式进行一个简单讲解 1.传单个参数 单个参数这种比较简单,例如 ...

  3. 基于 Scrapy-redis 两种形式的分布式爬虫

    基于 Scrapy-redis 两种形式的分布式爬虫 .caret, .dropup > .btn > .caret { border-top-color: #000 !important ...

  4. Controller@实现Controller的两种形式

    实现Controller的两种形式 形式1:仅仅实现IController接口,自定义Controller对Request的实现.形式2:在实现IController接口以后,继承Controller ...

  5. 微信小程序传参数的几种方法

    1,navigator 跳转时 wxml页面(参数多时可用“&”) <navigator url='../index/index?id=1&name=aaa'></n ...

  6. Python中函数传递参数有四种形式

    Python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...

  7. C++:一般情况下,设计函数的形参只需要两种形式

    C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...

  8. jquery插件的两种形式

    这里总结一下jquery插件的两种形式,一种是通过字面量的形式组织代码,另一种是通过构造函数的方式.下面就两种形式来分析俩个例子. 例子1: ;(function ($,window,document ...

  9. ajax的data传参的两种方式

    ajax的data传参的两种方式 本文为转载. 1.[javascript] view plain copy /** * 订单取消 * @return {Boolean} 处理是否成功 */ func ...

随机推荐

  1. 【分布式搜索引擎】Elasticsearch写入和读取数据过程

    一.Elasticsearch写人数据的过程 1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2)coordinating node,对docum ...

  2. python学习(七)

  3. vue 安装插件Refusing to install package with name '???'

    今天想练习使用下vux框架,安装时报错 查了下,创建项目时描述都是一样的,去package.json把name改成其它就得了

  4. openLDAP安装时无法操作根节点数据,提示的是This base cannot be created with PLA.

    1.无法操作根节点数据,提示的是This base cannot be created with PLA. 解决办法 1)添加一个base.ldif文件,里面的dc和配置文件里的保持一致即可 dn: ...

  5. Matlab:显(隐)式Euler和Richardson外推法变步长求解刚性问题

    一.显示Euler 函数文件:Euler.m function f=Euler(h,Y) f(1,1)=Y(1)+h*(0.01-(1+(Y(1)+1000)*(Y(1)+1))*(0.01+Y(1) ...

  6. leetcode-956. 最高的广告牌

    https://leetcode-cn.com/contest/weekly-contest-114/problems/tallest-billboard/ 给出一个集合,询问能否挑出两个不重叠的子集 ...

  7. 原生tab切换(适用于购物商城中订单管理模块,例如:待付款/待发货/待收货等订单状态)

    <!-- 头部tab栏切换 html部分--> <ul class="title-bar"> <li @click="changeStatu ...

  8. html5(五)拖放

    http://www.w3school.com.cn/html5/html_5_draganddrop.asp http://www.cnblogs.com/return-false/p/332628 ...

  9. wireshark捕获/显示过滤器表达式书写规律说明

    一.说明 1.1 背景说明 对于大多数刚开始接触wireshark的使用者而言,经常是开始的时候时候看到wireshark能把所有数据包都拦截下来觉得强无敌,但是面对一大堆的数据包要问有什么用或者说想 ...

  10. C++获取数组的长度

    C++获取数组的长度 #include<iostream> using namespace std; template<class T> int length(T& a ...