在Django框架中伪造捕捉到的URLconf值的方法

在Django框架中伪造捕捉到的URLconf值的方法,第1张

概述比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL。这种情况下,你可以通过向同一个视图传递额外URLconf参数来伪造URL值的捕捉。

比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的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<month>\w{3})/(?P<day>\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'}),)

在这里最帅的地方莫过于你根本不用改变你的视图函数。 视图函数只会关心它 获得 了 参数,它不会去管这些参数到底是捕捉回来的还是被额外提供的。month和day

总结

以上是内存溢出为你收集整理的在Django框架中伪造捕捉到的URLconf值的方法全部内容,希望文章能够帮你解决在Django框架中伪造捕捉到的URLconf值的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存