2024-05-17 09:03:44 发布
网友
我有一个巨大的urls.py,有很多行,比如:
urls.py
url(r'^do_foo$', views.do_foo),
也就是说,url与视图中的函数名完全匹配。在
我不想创建一个以url为参数并基于性能原因找到适当方法的分派器。在
Q:
有没有办法把urls.py缩短为一行
或者完全摆脱urls.py。在
urlpatterns变量只是Python,因此,如果可以确定要映射到url的可调用项,则可以将其自动化:
urlpatterns
import inspect import views urlpatterns = [url(r'^%s$' % name, view) for name, view in views.__dict__.items() if callable(view) and inspect.getargspec(view)[0][0] == 'request']
但是在这样做之前要仔细考虑-自动公开你的所有视图作为网址可以打开你不打算公开的部分应用程序。上面的inspect argspec检查是朝着不意外打开太多的方向迈出的一小步,但我不想过于依赖它。在
每个URL末尾的$符号表示结尾处完全匹配 例如
url(r'^do_foo$', views.do_foo)
将只匹配/do\u-foo,而
将匹配 嘟嘟福/你好 doo嫒foo/abcd/bar
你可以用这个来缩小你的网址.py在
你不能摆脱网址.py完全可以,但是可以使用
可以使用将所有URL映射到同一个视图函数
urlpatterns
变量只是Python,因此,如果可以确定要映射到url的可调用项,则可以将其自动化:但是在这样做之前要仔细考虑-自动公开你的所有视图作为网址可以打开你不打算公开的部分应用程序。上面的inspect argspec检查是朝着不意外打开太多的方向迈出的一小步,但我不想过于依赖它。在
每个URL末尾的$符号表示结尾处完全匹配
例如
将只匹配/do\u-foo,而
^{pr2}$将匹配
嘟嘟福/你好
doo嫒foo/abcd/bar
你可以用这个来缩小你的网址.py在
你不能摆脱网址.py完全可以,但是可以使用
可以使用将所有URL映射到同一个视图函数
^{3}$相关问题 更多 >
编程相关推荐