8)django-示例(url传递参数)
url传递参数有两种,一个是通过普通分组方式,一个是通过带命名分组方式
1.传递方式
1)普通分组方式,传递参数顺序是严格的。如下例子
url(r'^detail-(\d+)-(\d+).html',views.detail), 共传递了两个参数
def detail(request,nid,uid)第一个(\d+)传递给了nid,第二个(\d+)传递uid,
但是如果变为detail(request,uid,nid),则第一个(\d+)传递给了uid,所以可能会存在传递错误问题 2) 带命名分组
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail) 第一个参数一直是传递给nid,第二个参数一直传递给uid,
所以在视图中不管nid,uid顺序如何,都能传递正确。
推荐使用带命名分组。
3)传递的参数很多怎么办?可以用如下方式
def detail(request, *args,**kwargs):
a.
url(r'^detail-(\d+)-(\d+).html', views.detail), def func(request, nid, uid): pass def func(request, *args):
args = (2,9) def func(request, *args, **kwargs):
args = (2,9) b.
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail) def func(request, nid, uid):
pass def funct(request, **kwargs):
kwargs = {'nid': 1, 'uid': 3} def func(request, *args, **kwargs):
args = (2,9)
4、 name
2)渲染页面是动态和静态页面
通常我们认为带?参数页面为动态的。比如:http://127.0.0.1:8001/detail/?id=3
动态页面对搜索爬虫不太友好。百度等静态页面更容易收录。可以改静态传递值http://127.0.0.1:8001/detail-3(这里就需要使用命名分组)
{% for row in USER_DICT.values %} <!-- 这里返回的是values-->
<li><a href="/detail/?id={{ row }}">{{ row }}</a></li>
{% endfor %}
{% for k,v in USER_DICT.items %} <!-- 这里返回的是key,values-->
<li><a href="/detail-{{ k }}.html">{{ v.name }}</a></li>
{% endfor %}
</ul>
8)django-示例(url传递参数)的更多相关文章
- 【Django】url传递参数
1. url传递参数的特殊字符 在压缩后,可能出现 + - = 空格 这类特殊字符,需要在传递前进行url编码 urllib.enquote(string) 获取参数后 urllib.un ...
- django通过url传递参数(编辑操作页面)
在做到编辑部分时,想到的办法是在编辑上跳转到页面时给他一个包含唯一标识id的url,然后通过这个url中的id去查询出该条数据,将数据内容显示在编辑页面. 1.编辑按钮 <button on ...
- html5页面与android页面之间通过url传递参数
html5页面与android页面之间可以通过url传递参数,android将参数放在htm5的url ?后面,js获取url ?号后面的参数. 方法一: <scrīpt> /* 用途 ...
- 用URL传递参数
用URL传递参数,在园子里找到一篇文章解决了自己的问题,地址如下:http://www.cnblogs.com/lolicon/archive/2009/01/19/1378408.html
- 关于Url传递参数
Url传递参数时,后台取值会直接取等号后面的内容,包括引号在内. 比如: http://localhost:8080/user?name='admin' 这是错误的做法,后台获取到的参数是包括引号 ...
- vue-router 利用url传递参数
vue-router 利用url传递参数 :冒号的形式传递参数 在路由配置文件里以:冒号的形式传递参数,这就是对参数的绑定. 1. 在配置文件里以冒号的形式设置参数.我们在/src/router/i ...
- Spring MVC(六)--通过URL传递参数
URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping ...
- Vue-router 第5节 vue-router利用url传递参数
Vue-router 第5节 vue-router利用url传递参数 目录 Vue-router 第5节 vue-router利用url传递参数 第5节 vue-router利用url传递参数 冒号的 ...
- Django URL传递参数的方法总结(转)
1 无参数情况 配置URL及其视图如下: 1 2 3 4 (r'^hello/$', hello) def hello(request): return HttpResponse("He ...
随机推荐
- JAVA 线程池之Callable返回结果
本文介绍如何向线程池提交任务,并获得任务的执行结果.然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理. 一,执行具体任务的线程类 要想 获得 线程的执行结果,需实现Callable接口 ...
- 伪触发 input file 的click事件
前端在做 input file 美化的时候,通常 把 input 定位position 到 已美化的按钮最上方 opacity: 0 HTML5时代,已有更方便的方法,点击美化按钮直接触发选择文件事件 ...
- SQL Server循环——游标、表变量、临时表
游标 在游标逐行处理过程中,当需要处理的记录数较大,而且游标处理位于数据库事务内时,速度非常慢. -- 声明变量 DECLARE @Id AS Int -- 声明游标 DECLARE C_Id CUR ...
- Win下安装nvm
nvm 是 windows 下切换 node 版本的管理工具,mac 下可以使用 TJ 写的 n . 1.https://github.com/coreybutler/nvm-windows/rele ...
- redis的持久化方案
Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化. Redis支持两种方式的持久化,一种是RDB方 ...
- MySQL自动编号与主键
1.自动编号(AUTO_INCREMENT),必须与主键组合使用 默认情况下,起始值为1,增量也为1. 2.主键(PRIMARY KEY) 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为 ...
- PHP实现权限管理功能
权限管理系统,它主要是为了给不同的用户设定不同的权限,从而实现不同权限的用户登录之后使用的功能不一样. 首先先看下数据库 总共有5张表,users,roles和roleswork 3张表与另外2张表形 ...
- nginx 基于uwsgi部署Django
1.安装nginx yum install -y nginx(需要epel源) 2.安装环境 可以考虑使用虚拟化环境,本处不再使用 3.安装uwsgi yum groupinstall "D ...
- Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Initialization)
声明:所有内容来自coursera,作为个人学习笔记记录在这里. Initialization Welcome to the first assignment of "Improving D ...
- hibernate(一) 第一个hibernate工程
序言 其实hibernate已经学过一遍,不过因为太糊弄,急于求成,导致现在需要重新来学习,通过亲自去敲每一行代码,来去理解每一个知识点. ---WH 一.什么是Hibernate? 轻量级JavaE ...