随笔 - 67  文章 - 12  评论 - 442  阅读 - 39万

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访问这个方法。

可以试一下的。 

posted on   Game_over  阅读(1990)  评论(3编辑  收藏  举报
编辑推荐:
· .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语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示