手机
当前位置:查字典教程网 >脚本专栏 >python >在Django框架中伪造捕捉到的URLconf值的方法
在Django框架中伪造捕捉到的URLconf值的方法
摘要:比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL。这种情况下,你可以通过向同一个视图传递额外URLconf...

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

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

【在Django框架中伪造捕捉到的URLconf值的方法】相关文章:

python逐行读取文件内容的三种方法

python在linux中输出带颜色的文字的方法

Python通过解析网页实现看报程序的方法

python两种遍历字典(dict)的方法比较

使用go和python递归删除.ds store文件的方法

Python去掉字符串中空格的方法

Pyramid Mako模板引入helper对象的步骤方法

Python 条件判断的缩写方法

python爬取网站数据保存使用的方法

Python中使用动态变量名的方法

精品推荐
分类导航