定安住房和城乡建设局网站,上海网站网络科技有限公司,专业app开发,搞定设计官网我们在Django建立helloworld自定义页面创建的页面#xff0c;只能算是一个静态页#xff0c;发起一个请求#xff0c;返回一个固定的值#xff0c;并不能满足我们动态的需求。今天我们创建一个带参数的URLconf#xff0c;根据参数展示不同的内容。 另一个试图函数 打开vie…我们在Django建立helloworld自定义页面创建的页面只能算是一个静态页发起一个请求返回一个固定的值并不能满足我们动态的需求。今天我们创建一个带参数的URLconf根据参数展示不同的内容。 另一个试图函数 打开views.py创建一个试图函数 1 def current_dt(request):
2 now datetime.datetime.now()
3 html htmlbodyit 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(hoursphours)
8 html htmlbodyIn %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