带参数的URLconf

我们在Django建立helloworld自定义页面创建的页面,只能算是一个静态页,发起一个请求,返回一个固定的值,并不能满足我们动态的需求。今天我们创建一个带参数的URLconf,根据参数展示不同的内容。

另一个试图函数

打开views.py,创建一个试图函数

1 def current_dt(request):
2     now = datetime.datetime.now()
3     html = "<html><body>it is now %s.</body></html>" % now
4     return HttpResponse(html)

这里我是沿用helloWord那个views.py文件,需要引入datetime模块

from django.http import HttpResponse
import datetime

打开urls.py,配置一个URL

url(r'^curtime/$',current_dt),

好了,我们访问一下这个地址吧,效果如下

每次刷新都会显示当前时间,当然这不是我们的动态效果。

带参数的视图函数

在当前时间基础上增加时差的视图。

我们重复上述动作,新建试图函数(只不过除了request,多一个参数-时差数)

1 def hours_ahead(request,phours):
2     try:
3         phours = int(phours)
4     except VauleError:
5         raise Http404()
6 
7     dt = datetime.datetime.now() + datetime.timedelta(hours=phours)
8     html = "<html><body>In %s hour(s),it will be %s.</body></html>" % (phours,dt)
9     return HttpResponse(html)

注意:捕获值(传递的参数)永远都是字符串(string)类型,而不会是整数(integer)类型,即使这个字符串全由数字构成(如:“21”)。

因此这里我们使用int()进行转换

phours = int(phours)

 

配置URLconf

那么,我们如何设计程序来处理任意数量的时差?

答案是:使用通配符(wildcard URLpatterns)。一个URL模式就是一个正则表达式,因此,这里可以使用d+来匹配1个以上的数字。

在这里我们就设置了99个小时的时间段限制。

现在我们已经设计了一个带通配符的URL,我们需要一个方法把它传递到视图函数里去,这样我们只用一个视图函数就可以处理所有的时间段了。 我们使用圆括号把参数在URL模式里标识出来。在这个例子中,我们想要把这些数字作为参数,用圆括号把 \d{1,2} 包围起来

url(r'^ptime/plus/(\d{1,2})/$',hours_ahead),

另外一个重点,正则表达式字符串的开头字母“r”。 它告诉Python这是个原始字符串,不需要处理里面的反斜杠(转义字符)。 在普通Python字符串中,反斜杠用于特殊字符的转义。比如n转义成一个换行符。 当你用r把它标示为一个原始字符串后,Python不再视其中的反斜杠为转义字符。也就是说,“n”是两个字符串:“”和“n”。由于反斜杠在Python代码和正则表达式中有冲突,因此建议你在Python定义正则表达式时都使用原始字符串。

 

好,我们访问一下看看效果吧

到此为止,我们已经可以传递参数,根据参数来显示内容了。

 

 

转载于:https://www.cnblogs.com/cotton/p/3833154.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6之Module的语法(1)

1.概述 CommonJS 和 AMD 模块&#xff0c;都只能在运行时确定这些东西。比如&#xff0c;CommonJS 模块就是对象&#xff0c;输入时必须查找对象属性 上面代码的实质是整体加载fs模块&#xff08;即加载fs的所有方法&#xff09;&#xff0c;生成一个对象&#xff08;_fs&a…

更改文件和目录(及子目录)的拥有者

当你想更改一个文件或目录(及子目录)的拥有者&#xff0c;可以使用下面的命令&#xff1a; chmod -R zcm:zcm /home/zcm/* 将home/zcm/ 下的所有文件的拥有者改为zcm&#xff0c;所属组为zcm. 不过&#xff0c;要执行chmod权限&#xff0c;可能会需要r…

转:Node.js和testacular的安装与配置

yuanwen:http://jishu.zol.com.cn/4881.html /** * 这个问题起源于testacular的尝试&#xff0c;也算是顺便给我学习Node.js开了一个头。 * 在次记录安装步骤以及安装过程中遇到的问题&#xff0c;备忘&#xff01; **/ 1、安装Node.js 官方地址&#xff1a;http://nodejs.org/…

ES6之Module的语法(2)

4.import命令 使用export命令定义了模块的对外接口以后&#xff0c;其他 JS 文件就可以通过import命令加载这个模块 上面代码的import命令&#xff0c;用于加载profile.js文件&#xff0c;并从中输入变量。import命令接受一对大括号&#xff0c;里面指定要从其他模块导入的…

ISA系列之三:ISA Server 2004防火墙的基本配置

3&#xff0e;1 防火墙策略的组成<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />在ISA服务器安装成功后&#xff0c;其防火墙策略默认为禁止所有内外通讯&#xff0c;所以我们需要在服务器上建立相应的防火墙策略&#xff0c…

太极

昨天&#xff0c;学了一点太极&#xff0c;也让我终于明白&#xff0c;书本代替不了的所谓的口传心授。 桩功&#xff1a; 手掌向前&#xff0c;最后腰也有前倾&#xff0c;背和臀部的后和手的前伸成为一个对比&#xff0c; 臀部的下和头顶的上&#xff0c;成为一个互拉 可以通…

linux下修改主机名

我用的是Fedora12系统&#xff0c;默认情况下&#xff0c;主机名是&#xff1a;localhost.localdomain&#xff0c;这个名字真是太难看了&#xff0c;于是就想着修改一下主机名。 在网上搜索了下&#xff0c;有好几种方法&#xff0c;我就不多说了&#xff0c;我只介绍我自己最…

ES6之Module的语法(3)

7.export 与 import 的复合写法 如果在一个模块之中&#xff0c;先输入后输出同一个模块&#xff0c;import语句可以与export语句写在一起 模块的接口改名和整体输出&#xff0c;也可以采用这种写法 默认接口的写法如下 具名接口改为默认接口的写法如下 因为默认是…

到了新公司

由于原公司撤资&#xff0c;今天是新公司的第一天上班&#xff0c;希望自己能走好&#xff1a;&#xff09; 转载于:https://www.cnblogs.com/treeyh/archive/2008/04/21/1164709.html

group by的使用

在sql语句中经常用到group by&#xff0c;但是对其并不是太了解&#xff0c;所以记录下来&#xff1a; select A,cout(*) 数量 from table_name group by A; group by 的使用有一条原则&#xff0c;那就是select 后面的所有列中没有使用聚合函数到必须出现在group by 后面。 那…

定时关机,适用于windows系统

命令&#xff1a; at 23:00:00 shutdown -s

ES6之Module 的加载实现(1)

1.浏览器加载 1.1传统方法&#xff1a; 在 HTML 网页中&#xff0c;浏览器通过<script>标签加载 JavaScript 脚本 默认情况下&#xff0c;浏览器是同步加载 JavaScript 脚本&#xff0c;即渲染引擎遇到<script>标签就会停下来&#xff0c;等到执行完脚本&…

c#同类型操作最终得到的结果将是同类型

例&#xff1a;decimal a (decimal) ( 1 / 2 ); //a的值是 0declmal b (decimal) ( (decimal)1 / (decimal)2 ) //b的值是0.5 转载于:https://www.cnblogs.com/lswweb/archive/2008/04/22/1165336.html

不断尝试,终能到达彼岸

不断尝试&#xff0c;终能到达彼岸 看山是山&#xff0c;看水是水&#xff1b;看山不是山&#xff0c;看水不是水&#xff1b;看山还是山&#xff0c;看水还是水。——佛家中人生三大境界 最近有一个用django开发的项目需要部署&#xff0c;项目用到了djangorestfulframework&a…

ES6之Module 的加载实现(2)

3.Node 加载 Node 对 ES6 模块的处理比较麻烦&#xff0c;因为它有自己的 CommonJS 模块格式&#xff0c;与 ES6 模块格式是不兼容的。目前的解决方案是&#xff0c;将两者分开&#xff0c;ES6 模块和 CommonJS 采用各自的加载方案 3.1在静态分析阶段&#xff0c;一个模块脚本…

Linux tail 命令详解

用途从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件&#xff0c;tail -f filename会把filename里最尾部的内容显示在屏幕上&#xff0c;并且不但刷新&#xff0c;使你看到最新的文件内容。语法标准语法tail [ -f ] [ -c Number | -…