url用法
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用法的更多相关文章
- css cursor url用法格式详解
css cursor url用法格式:css:{cursor:url('图标路径'),auto;} //IE,FF,chrome浏览器都可以 实例代码:html{cursor: url("h ...
- Request.url用法
原文:Request.url用法 我們在開發網頁應用程式,時常需要去解析網址(Request.Url)的每個片段,進行一些判斷.例如說 "http://localhost:1897/News ...
- day64 url用法以及django的路由系统
此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...
- Data URL简介及Data URL的利弊
之前写过一篇“漫谈前端优化”的文章,里面提到过DataUrl,粗鲁的描述了下,感觉不甚详焉,所以这几天也总结了这方面的知识,参考一些资料,补充一篇文章在这里,对这方面的资料来说,也是一种强化记忆应用: ...
- java通过java.net.URL发送http请求调用接口
一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...
- 【转】Data URL和图片,及Data URI的利弊
Data URL给了我们一种很巧妙的将图片“嵌入”到HTML中的方法.跟传统的用img标记将服务器上的图片引用到页面中的方式不一样,在Data URL协议中,图片被转换成base64编码的字符串形式, ...
- wordpress 获取分类ID,分类标题,分类描述,分类链接url函数
get_cat_ID() 根据分类名称获取分类ID ///// get_cat_name() 根据分类ID获取分类名称 用法:<?phpget_cat_ID( $cat_name ...
- Node.js GET/POST对应的url/query-string常用的方法介绍
<一>,在学node.js--GET/POST请求时,先看模块url和query-string的用法 1. 模块url用法,一般用于解析get请求. parse: [Function: u ...
- find命令详解
find命令详解 来源: ChinaUnix博客 日期: 2008.07.25 16:04 (共有条评论) 我要评论 [url=http://www.sudu.cn/web/host.php] ...
随机推荐
- freepbx对接gms网关
前面的文章阿里云使用镜像安装freepbx , 安装freepbx后创建sip分机 ,freepbx的SIP通话客户端X-lite Yate eyeBeam Linphone我们已经成功的创建好了分机 ...
- springboot-15-启动时加载数据的方法CommandLineRunner
有时需要爱项目启动时, 去加载一些配置文件什么的, 可以使用监听器的方式加载, 这是可以通过实现接口 CommandLineRunner来实现需求: Spring Boot应用程序在启动后,会遍历Co ...
- 11-hdfs-NameNode-HA-wtihQJM解决单点故障问题
在hdfs中, NN只有一个, 但其中保存的数据尤其重要, 所以需要将元数据保存, 其中源数据有2个形式, fsimage 和 edit文件, 最简单的解决方法就是复制fsimage, 并在文件修改时 ...
- RabbitMQ 上手记录-part 1-基础概念
RabbitMQ是什么,不用多介绍了,毕竟名声在那,江湖地位摆着,搜索引擎收录着.为什么突然去学习这个框架了,毕竟工作中没有用得上(说来也惭愧,工作中开发的项目没有使用这个框架).但是作为互联网分布式 ...
- SQL Server如何存储特殊字符、上标、下标
测试验证特殊符号能否存入数据库中: 其中,像一些普通单位符号比如“ ° ′"﹩ $ ﹠ & £¥ ‰ % ℃ ¤ ¢℉”可以正常录入没有问题,但是万分号“‱”之上就不可以了,录入后显 ...
- Maven - dependency那些事儿
身边有几位刚使用Maven的同学表示——在一个叫"pom.xml"的文件里声明一个依赖就不用去手动添加jar了,感觉这东西和自己手动管理依赖没太大区别. 当然,并不是这样,在此记录 ...
- Winform 常用的方法
一,Winform 如何内嵌窗体 1,判断窗体中是否以还有内嵌窗体 private void ClosePreForm() { foreach (Control item in this.spCont ...
- 手把手教你写一个java的orm(完)
生成sql:select 上一篇讲了怎样生成一个sql中where的一部分,之后我们要做事情就简单很多了,就只要像最开始一样的生成各种sql语句就好了,之后只要再加上我们需要的条件,一个完整的sql就 ...
- MySQL 报错
SELECT COUNT(1) FROM (select tid from teacher where tname like '李%') 1248 - Every derived table must ...
- python学习之老男孩python全栈第九期_day017作业
1. 三级菜单的代码看一遍 2. 斐波那契数列用递归实现:问第n个斐波那契数是多少 def fbnq(n): if n == 0 or n == 1: return 1 else: return fb ...