django-在 urls.py 中传递字符串或实例?

标签 django optimization url

与函数实例相比,在 url 模式中传递字符串有好处吗?看起来可以优化为在需要时不实际加载该函数,但这实际上是真的吗?

from django.conf.urls.defaults import *
from myapp.views import myView

urlpatterns = patterns('',
    # as a string
    url(r'^as-string/$', "myapp.views.myView"),

    # Uploading photos
    url(r'^as-instance/$', myView),

)

编辑:如果确实在需要时才导入,那么这将是对内存的优化,但在您之前不会引发不存在的函数和其他错误实际上尝试访问该网址。

当然,如果您编写测试,这不是问题;)

最佳答案

主要的好处是,当您使用实际的可调用对象时,您可以执行诸如在 URLConf 中对其应用装饰器之类的操作。所以你可以做这样的事情:

from django.conf.urls.defaults import *
from django.contrib.auth.decorators import login_required

from some_module import some_view

urlpatterns = patterns('',
                       (r'^some_url/$', some_view),
                       (r'^some_other_url/$', login_required(some_view)))

等等

这使您可以拥有仅在您特别需要时才应用于 View 的装饰器,而不是在 View 文件中进行装饰,然后必须始终应用该装饰器。

关于django-在 urls.py 中传递字符串或实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1018509/

相关文章:

c++ - 什么时候为 gcc 使用 -O2 标志?

android - 从android中的url加载html媒体,如视频、音频和pdf

url - 谷歌分析页面名称

django - 允许用户在不显示链接且不缓冲的情况下下载文件

python - 使用 django 脆皮表单登录时出现关键错误

c# - 这段代码可以优化吗?

python - 在 Python 中按索引从列表中删除元素的简洁方法

url - Opencart -> 清理 URLS

python - Django - 表单无效但没有错误

python - PyAMF 数据库错误 : 'This query is not supported by the database.' when returning the User object