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传递参数)的更多相关文章

  1. 【Django】url传递参数

    1.  url传递参数的特殊字符 在压缩后,可能出现  +  -  = 空格  这类特殊字符,需要在传递前进行url编码  urllib.enquote(string) 获取参数后 urllib.un ...

  2. django通过url传递参数(编辑操作页面)

    在做到编辑部分时,想到的办法是在编辑上跳转到页面时给他一个包含唯一标识id的url,然后通过这个url中的id去查询出该条数据,将数据内容显示在编辑页面.   1.编辑按钮 <button on ...

  3. html5页面与android页面之间通过url传递参数

    html5页面与android页面之间可以通过url传递参数,android将参数放在htm5的url  ?后面,js获取url  ?号后面的参数. 方法一: <scrīpt> /* 用途 ...

  4. 用URL传递参数

    用URL传递参数,在园子里找到一篇文章解决了自己的问题,地址如下:http://www.cnblogs.com/lolicon/archive/2009/01/19/1378408.html

  5. 关于Url传递参数

    Url传递参数时,后台取值会直接取等号后面的内容,包括引号在内. 比如:   http://localhost:8080/user?name='admin' 这是错误的做法,后台获取到的参数是包括引号 ...

  6. vue-router 利用url传递参数

    vue-router 利用url传递参数 :冒号的形式传递参数  在路由配置文件里以:冒号的形式传递参数,这就是对参数的绑定. 1. 在配置文件里以冒号的形式设置参数.我们在/src/router/i ...

  7. Spring MVC(六)--通过URL传递参数

    URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping ...

  8. Vue-router 第5节 vue-router利用url传递参数

    Vue-router 第5节 vue-router利用url传递参数 目录 Vue-router 第5节 vue-router利用url传递参数 第5节 vue-router利用url传递参数 冒号的 ...

  9. Django URL传递参数的方法总结(转)

    1 无参数情况 配置URL及其视图如下: 1 2 3 4 (r'^hello/$', hello)   def hello(request): return HttpResponse("He ...

随机推荐

  1. 添加Glide图片加载框架依赖

    1.添加依赖implementation 'com.github.bumptech.glide:glide:4.7.1' 2.放置一个ImageView.3.加载,ivGif是ImageView实例 ...

  2. 4.mysql(slow_log/generic_log/audit)

    一.慢查询日志进阶 <1>相关参数 1.slow_query_log #是否开启慢查询日志 2.slow_query_log_file #慢查询日志文件名,在my.cnf我们已经定义为sl ...

  3. 三十五、minishell(3)

    35.1 内容 在当前的 minishell 中,如果执行 date clear 命令等,minishell 会停止: 这是因为引入进程组的时候,mshell 放置在前台进程组,同时之后在子进程中又创 ...

  4. 默认约束(DEFAULT)

    默认值 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值. mysql> CREATE TABLE tb8( -> id SMALLINT UNSIGNED AUTO_INCREME ...

  5. MySQL之数据表的插入内容 空与非空(六)

    NULL与NOT NULL mysql> CREATE TABLE tb2( -> usename VARCHAR(20) NOT NULL, -> age TINYINT UNSI ...

  6. CF961G Partitions

    传送门 luogu 显然每个数的贡献可以一起算感性理解一下,于是答案就是权值总和乘以每个数被算了几次 那个"集合大小为\(|S|\)的集合权值为权值和乘\(|S|\)",可以看成一 ...

  7. JQuery-change/select/submit

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. day 5 - 2 字典(dict)练习

    1. 有如下变量(tu 是个元祖),请实现要求的功能 tu = ("alex",[11,22,{"k1":'v1',"k2":[" ...

  9. mysql 案例 ~超时时间设置

    一 简介:今天咱们来谈谈mysql的连接时间与会话关系二 分类  mysql会话分类  1 程序连接session(最主要的)  2 binlog连接session(复制+canal消费)  3 ro ...

  10. EL知识点总结

    EL知识点总结 - canger - 博客园http://www.cnblogs.com/canger/p/6675799.html 1 只可以获取内置对象的属性值,不可以获取JSP页面中局部java ...