分页传参数的两种形式,url正则 ?id=1
目的: 打开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的更多相关文章
- thinkphp的model的where条件的两种形式
thinkphp的model的where查询时有两种形式. $model->field('id')->where('customer_num is null or customer_num ...
- thinkphp 3.2.3 入门示例2(URL传参数的几种方式)
原文:thinkphp中URL传参数的几种方式 在thinkphp中,url传参合asp.net中原理类似,下面就单个参数和多个参数传递方式进行一个简单讲解 1.传单个参数 单个参数这种比较简单,例如 ...
- 基于 Scrapy-redis 两种形式的分布式爬虫
基于 Scrapy-redis 两种形式的分布式爬虫 .caret, .dropup > .btn > .caret { border-top-color: #000 !important ...
- Controller@实现Controller的两种形式
实现Controller的两种形式 形式1:仅仅实现IController接口,自定义Controller对Request的实现.形式2:在实现IController接口以后,继承Controller ...
- 微信小程序传参数的几种方法
1,navigator 跳转时 wxml页面(参数多时可用“&”) <navigator url='../index/index?id=1&name=aaa'></n ...
- Python中函数传递参数有四种形式
Python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...
- C++:一般情况下,设计函数的形参只需要两种形式
C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...
- jquery插件的两种形式
这里总结一下jquery插件的两种形式,一种是通过字面量的形式组织代码,另一种是通过构造函数的方式.下面就两种形式来分析俩个例子. 例子1: ;(function ($,window,document ...
- ajax的data传参的两种方式
ajax的data传参的两种方式 本文为转载. 1.[javascript] view plain copy /** * 订单取消 * @return {Boolean} 处理是否成功 */ func ...
随机推荐
- 【分布式搜索引擎】Elasticsearch写入和读取数据过程
一.Elasticsearch写人数据的过程 1)客户端选择一个node发送请求过去,这个node就是coordinating node(协调节点)2)coordinating node,对docum ...
- python学习(七)
- vue 安装插件Refusing to install package with name '???'
今天想练习使用下vux框架,安装时报错 查了下,创建项目时描述都是一样的,去package.json把name改成其它就得了
- openLDAP安装时无法操作根节点数据,提示的是This base cannot be created with PLA.
1.无法操作根节点数据,提示的是This base cannot be created with PLA. 解决办法 1)添加一个base.ldif文件,里面的dc和配置文件里的保持一致即可 dn: ...
- 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) ...
- leetcode-956. 最高的广告牌
https://leetcode-cn.com/contest/weekly-contest-114/problems/tallest-billboard/ 给出一个集合,询问能否挑出两个不重叠的子集 ...
- 原生tab切换(适用于购物商城中订单管理模块,例如:待付款/待发货/待收货等订单状态)
<!-- 头部tab栏切换 html部分--> <ul class="title-bar"> <li @click="changeStatu ...
- html5(五)拖放
http://www.w3school.com.cn/html5/html_5_draganddrop.asp http://www.cnblogs.com/return-false/p/332628 ...
- wireshark捕获/显示过滤器表达式书写规律说明
一.说明 1.1 背景说明 对于大多数刚开始接触wireshark的使用者而言,经常是开始的时候时候看到wireshark能把所有数据包都拦截下来觉得强无敌,但是面对一大堆的数据包要问有什么用或者说想 ...
- C++获取数组的长度
C++获取数组的长度 #include<iostream> using namespace std; template<class T> int length(T& a ...