url中的name用法:

0.定义主rul.py

urlpatterns = [
url(r'^sinfors/', include('sinfors.urls', namespace="sinfors")),
url(r'^aptest/', include('aptest.urls', namespace="aptest")), #引用app aptest
url(r'^admin/', include(admin.site.urls)),
]

1.定义view.py

# -*- coding: UTF-8 -*-
from django.shortcuts import render
from django.http import HttpResponse,HttpResponseRedirect
from django.core.urlresolvers import reverse
# Create your views here. def add2(request,a,b):
c=int(a)+int(b)
return HttpResponse(str(c)) def add(request):
return render(request,'aptest/test01.html') def testvw(request):
return HttpResponse(u"aa!")

2.定义app(aptest)下的url.py

from django.conf.urls import url
from aptest import views as aptest #aptest是app的名称,主url中已引用该app名称
urlpatterns = [
url(r'^$', aptest.index, name='index'),
url(r'^add2/(\d+)/(\d+)/$', aptest.add2, name='add2'),
url(r'^add/$', aptest.add, name='add'),
url(r'^test011/$', aptest.testvw, name='testname'), #name和url是不同的
]

访问 http://192.168.50.74/aptest/test011/ ,调用aptest的view中的testvw视图

3.在模板中引用该url

<!DOCTYPE html>
<html> <body>
<caption>tt <a class="text-info" href="{% url 'aptest:testname' %}">test01</a></caption> <!-- 通过url中定义的name(testname)进行调用,这样该url可以随意改动(比如test011可以改为其他),模板中的调用却不需要进行任何改动 -->
<caption>add22 <a class="text-info" href="{% url 'aptest:add2' 3 44 %}">add2</a></caption> <!-- 3 44 是add2视图的两个参数 -->
</body>
</html>

在url中提供参数:

url(r'^qlusers/(?P<luser>\w+)/(?P<ldate>\d{8})/$', views.mgmt,{'GET': views.mgmt_get_view,'POST': views.mgmt_post_view},name='luserslog'),

访问该url:http://10.16.2.4/appname/qlusers/zhangsan/20160728

luser参数接收字母格式

ldate参数接收8个数字

如下view中接收到一个dict格式字符串:kwargs为{'luser':'zhangsan','ldate':'20160728'}

view:

def mgmt(request,*args,**kwargs):
mgmt_get_view = kwargs.pop('GET', None) #return None if GET not exists.
mgmt_post_view = kwargs.pop('POST', None)
model = kwargs.pop('model', None)
if request.method == 'GET' and mgmt_get_view is not None:
return mgmt_get_view(request, model,args,kwargs) #将model传递到get view
elif request.method == 'POST' and mgmt_post_view is not None:
return mgmt_post_view(request, model)
#return vmmgmt_post_view(request, *args, **kwargs)
raise Http404 #handle get request.
def mgmt_get_view(request,model,args,kwargs):
if model is not None:
obj_list = model.objects.all() #从url中的 model 参数接收到具体的model类。模板中要使用 obj_list 变量做for循环
counts = model.objects.count()
assert request.method == 'GET'
if kwargs is not None:
if 'luser' in kwargs and 'ldate' in kwargs:

下面是一个使用无名组的 URLconf 的例子:

from django.conf.urls.defaults import *
from mysite import views urlpatterns = patterns('',
(r'^articles/(\d{4})/$', views.year_archive),
(r'^articles/(\d{4})/(\d{2})/$', views.month_archive),
)

下面是相同的 URLconf,使用命名组进行了重写:

from django.conf.urls.defaults import *
from mysite import views urlpatterns = patterns('',
(r'^articles/(?P<year>\d{4})/$', views.year_archive),
(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', views.month_archive),
)

这段代码和前面的功能完全一样,只有一个细微的差别: 取的值是以关键字参数的方式而不是以位置参数的方式传递给视图函数的。

例如,如果不带命名组,请求 /articles/2006/03/ 将会等同于这样的函数调用:

month_archive(request, '2006', '03')

而带命名组,同样的请求就会变成这样的函数调用:

month_archive(request, year='2006', month='03')

使用命名组可以让你的URLconfs更加清晰,减少搞混参数次序的潜在BUG,还可以让你在函数定义中对参数重新排序。 接着上面这个例子,如果我们想修改URL把月份放到 年份的 前面 ,而不使用命名组的话,我们就不得不去修改视图 month_archive 的参数次序。 如果我们使用命名组的话,修改URL里提取参数的次序对视图没有影响。

url用法的更多相关文章

  1. css cursor url用法格式详解

    css cursor url用法格式:css:{cursor:url('图标路径'),auto;} //IE,FF,chrome浏览器都可以 实例代码:html{cursor: url("h ...

  2. Request.url用法

    原文:Request.url用法 我們在開發網頁應用程式,時常需要去解析網址(Request.Url)的每個片段,進行一些判斷.例如說 "http://localhost:1897/News ...

  3. day64 url用法以及django的路由系统

    此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...

  4. Data URL简介及Data URL的利弊

    之前写过一篇“漫谈前端优化”的文章,里面提到过DataUrl,粗鲁的描述了下,感觉不甚详焉,所以这几天也总结了这方面的知识,参考一些资料,补充一篇文章在这里,对这方面的资料来说,也是一种强化记忆应用: ...

  5. java通过java.net.URL发送http请求调用接口

    一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...

  6. 【转】Data URL和图片,及Data URI的利弊

    Data URL给了我们一种很巧妙的将图片“嵌入”到HTML中的方法.跟传统的用img标记将服务器上的图片引用到页面中的方式不一样,在Data URL协议中,图片被转换成base64编码的字符串形式, ...

  7. wordpress 获取分类ID,分类标题,分类描述,分类链接url函数

    get_cat_ID()    根据分类名称获取分类ID   ///// get_cat_name()    根据分类ID获取分类名称 用法:<?phpget_cat_ID( $cat_name ...

  8. Node.js GET/POST对应的url/query-string常用的方法介绍

    <一>,在学node.js--GET/POST请求时,先看模块url和query-string的用法 1. 模块url用法,一般用于解析get请求. parse: [Function: u ...

  9. find命令详解

    find命令详解   来源: ChinaUnix博客 日期: 2008.07.25 16:04 (共有条评论) 我要评论   [url=http://www.sudu.cn/web/host.php] ...

随机推荐

  1. Java Graphics 图形绘制

    Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形.画字符串等. 画线段 drawLine pub ...

  2. b-树和b+树以及mysql索引

    b-树(m阶): 1.根节点至少有2个子节点; 2.中间节点包含k个子节点和k-1个元素,m/2 <= k <= m; 3.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子 ...

  3. [Codeforces 925C]Big Secret

    Description 题库链接 给出 \(n\) 个数,让你生成这 \(n\) 个数的一个排列 \(A\) .定义 \(B_i = \bigoplus\limits_{j=1}^i A_j\) , ...

  4. Cache写机制:Write-through与Write-back

    cache through https://www.cnblogs.com/gordonkong/p/7161809.html 原文地址:https://blog.csdn.net/wyzxg/art ...

  5. hadoop学习笔记(十一):MapReduce数据类型

    一.序列化 1 hadoop自定义了数据类型,在hadoop中,所有的key/value类型必须实现Writable接口.有两个方法,一个是write,一个是readFileds.分别用于读(反序列化 ...

  6. mui 百度语音识别转换文字

    前言 用mui混合开发的APP,现有一个功能需求就是语音转换成文字,并把语音进行保存.对此考虑两种选择讯飞和百度.最终选择了百度语音. 百度语音 通过官方文档我们大致可以确定如果想要实现语音识别,要做 ...

  7. 转载:SQL中Group By 的常见使用方法

    SQL中Group By 的常见使用方法  转载源:http://www.cnblogs.com/wang-meng/p/5373057.html 前言今天逛java吧看到了一个面试题, 于是有了今天 ...

  8. Python import搜索的路径顺序

    在程序中导入时,如下顺序 1.Python 标准库模块2.Python 第三方模块3.应用程序自定义模块   import的搜索顺序: 首先判断这个module是不是built-in即内建模块,如果是 ...

  9. 记一次简单爬虫(豆瓣/dytt)

    磕磕绊绊学python一个月,这次到正则表达式终于能写点有趣的东西,在此作个记录: ————————————————————————————————————————————————— 1.爬取豆瓣电影 ...

  10. AE三维点击查询(3D Identify)的实现(转)

    AE三维点击查询(3D Identify)的实现,类似ArcGIS的Identify对话框/////////////////////////////////////////////////////// ...