Python Web编程(三)
下面学习Django里面的URL匹配原则。
URL的匹配是设置在urls.py里面的。
上一节里面的urls.py是这样配置的:
urlpatterns = patterns('',
(r'^test1/', 'test1.helloworld.index'),
)
它的意思就是如果URL为test1,它就会去寻找test1.helloworld.index这个方法。
上一节只是显示出来了HelloWorld。
如果是动态的网页呢?例如有参数的?
Django的的URL模式是正则表达式。
例如要显示时间,有这么一个方法(test.py):
from django.http import HttpResponse
import datetime
def hour_offset(request, plus_or_minus, offset):
offset = int(offset)
if offset == 1:
hours = 'hour'
else:
hours = 'hours'
if plus_or_minus == 'plus':
dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
output = 'In %s %s, it will be %s.' % (offset, hours, dt)
else:
dt = datetime.datetime.now() - datetime.timedelta(hours=offset)
output = '%s %s ago, it was %s.' % (offset, hours, dt)
output = '%s' % output
return HttpResponse(output)
你如果想完全的用URL匹配这个方法,就需要加上两个参数--加减指示和偏移量。
如下的配置可以做到:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
# (r'^test1/', 'test1.helloworld.index'),
(r'^now/(plus|minus)(1)hour/$', 'test1.test.hour_offset'),
(r'^now/(plus|minus)([2-9]|\d\d)hours/$', 'test1.test.hour_offset'),
)
以上的设置允许类似plus2hours,minus1hour之类的URL访问这个方法。
可以试一下的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构