当前位置: 首页 > 编程笔记 >

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

夹谷浩博
2023-03-14
本文向大家介绍在Django框架中伪造捕捉到的URLconf值的方法,包括了在Django框架中伪造捕捉到的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>\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<month>\w{3})/(?P<day>\d\d)/$', views.my_view),
)

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

 类似资料:
  • 本文向大家介绍Python的Django框架中从url中捕捉文本的方法,包括了Python的Django框架中从url中捕捉文本的方法的使用技巧和注意事项,需要的朋友参考一下 每个被捕获的参数将被作为纯Python字符串来发送,而不管正则表达式中的格式。 举个例子,在这行URLConf中: 尽管 \d{4} 将只匹配整数的字符串,但是参数 year 是作为字符串传至 views.year_arch

  • 本文向大家介绍Django框架中处理URLconf中特定的URL的方法,包括了Django框架中处理URLconf中特定的URL的方法的使用技巧和注意事项,需要的朋友参考一下 有时你有一个模式来处理在你的URLconf中的一系列URL,但是有时候需要特别处理其中的某个URL。 在这种情况下,要使用将URLconf中把特殊情况放在首位的线性处理方式 。 比方说,你可以考虑通过下面这个URLpatte

  • 本文向大家介绍Python的Django框架中URLconf相关的一些技巧整理,包括了Python的Django框架中URLconf相关的一些技巧整理的使用技巧和注意事项,需要的朋友参考一下 提供视图配置选项 如果你发布一个Django的应用,你的用户可能会希望配置上能有些自由度。 这种情况下,为你认为用户可能希望改变的配置选项添加一些钩子到你的视图中会是一个很好的主意。 你可以用额外URLcon

  • 你好,有帮助的硒窗口和框架切换的家伙(或女孩),

  • 本文向大家介绍在Django的URLconf中使用命名组的方法,包括了在Django的URLconf中使用命名组的方法的使用技巧和注意事项,需要的朋友参考一下 在我们想要捕获的URL部分上加上小括号,Django 会将捕获的文本作为位置参数传递给视图函数。 在更高级的用法中,还可以使用 命名 正则表达式组来捕获URL,并且将其作为关键字参数传给视图。 一个 Python 函数可以使用关键字参数或位

  • 本文向大家介绍在Django的URLconf中进行函数导入的方法,包括了在Django的URLconf中进行函数导入的方法的使用技巧和注意事项,需要的朋友参考一下 看下这个 URLconf: 在 URLconf 中的每一个入口包括了它所关联的视图函数,直接传入了一个函数对象。 这就意味着需要在模块开始处导入视图函数。 但随着 Django 应用变得复杂,它的 URLconf 也在增长,并且维护这些