django 有没有类似于flask的before_request

django的views.py中有木有像flask那样的before_request的操作?

阅读 5.5k
2 个回答

Django的before_request叫Middleware

看看settings.py会有类似下面的内容:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
    'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
    "core.middleware.TemplateForDeviceMiddleware",
)

不知道你要控制多大范围. 如果是整个应用控制可以用使用@phodal所说的Middle
但是django和flask不一样flask有blueprint的存在, 可以方便的应用在部分应用上.
貌似django没有这个功能. 想要统一处理的话科研室试试 class View, 做一个View基类.初始化就可以达到before_request的功能了, 然后继承这个view就可以了.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题