在Django框架中伪造捕捉到的URLconf值的方法
程序员文章站
2024-04-03 10:12:58
...
比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL。 这种情况下,你可以通过向同一个视图传递额外URLconf参数来伪造URL值的捕捉。
例如,你可能有一个显示某一个特定日子的某些数据的应用,URL类似这样的:
/mydata/jan/01/ /mydata/jan/02/ /mydata/jan/03/ # ... /mydata/dec/30/ /mydata/dec/31/
这太简单了,你可以在一个URLconf中捕捉这些值,像这样(使用命名组的方法):
urlpatterns = patterns('', (r'^mydata/(?P\w{3})/(?P \d\d)/$', views.my_view), )
然后视图函数的原型看起来会是:
def my_view(request, month, day): # ....
这种解决方案很直接,没有用到什么你没见过的技术。 当你想添加另外一个使用 my_view 视图但不包含month和/或者day的URL时,问题就出现了。
比如你可能会想增加这样一个URL, /mydata/birthday/ , 这个URL等价于 /mydata/jan/06/ 。这时你可以这样利用额外URLconf参数:
urlpatterns = patterns('', (r'^mydata/birthday/$', views.my_view, {'month': 'jan', 'day': '06'}), (r'^mydata/(?P\w{3})/(?P \d\d)/$', views.my_view), )
在这里最帅的地方莫过于你根本不用改变你的视图函数。 视图函数只会关心它 获得 了 参数,它不会去管这些参数到底是捕捉回来的还是被额外提供的。month和day
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
- 最新文章
- 热门排行
推荐阅读
-
在Python的Django框架中显示对象子集的方法
-
在ci框架中定义了一个变量,并且已经初始为一个值,我想在其他方法中调用这个变量的值,如何做
-
在ci框架中定义了一个变量,并且已经初始为一个值,我想在其他方法中调用这个变量的值,如何做
-
在Django框架中自定义模板过滤器的方法
-
详解在Python的Django框架中创建模板库的方法
-
Django框架中处理URLconf中特定的URL的方法
-
在Django框架中编写Context处理器的方法
-
在Django中创建URLconf相关的通用视图的方法
-
在Django框架中伪造捕捉到的URLconf值的方法
-
在Python的Django框架中获取单个对象数据的简单方法
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论