在Django框架中伪造捕捉到的URLconf值的方法
发布时间:2020-12-16 22:06:49 所属栏目:Python 来源:网络整理
导读:比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL。 这种情况下,你可以通过向同一个视图传递额外URLconf参数来伪造URL值的捕捉。 例如,你可能有一个显示某一个特定日子的某些数据的应用,URL类似这样的: /mydata/jan/01
比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的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'}),) 在这里最帅的地方莫过于你根本不用改变你的视图函数。 视图函数只会关心它 获得 了 参数,它不会去管这些参数到底是捕捉回来的还是被额外提供的。month和day (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 安装在Python 3.3 venv中分发(OS X / Homebrew)
- 更新python中多个键的值
- 【python-leetcode103-树的宽度遍历】二叉树的锯齿形层次遍
- LOAD DATA LOCAL INFILE sqlalchemy和python到mysql db
- 【Flask模版语言Jinja2】 -- 2019-08-07 10:37:14
- windows下Python安装、使用教程和Notepad++的使用教程
- Python实现Linux的find命令实例分享
- python中’argv’的确切术语是什么?
- 为什么Python findall()和finditer()在unanchored.*搜索中返
- python – Argparse:两个位置参数,带有nargs =”