Python Django 1.6 在视图之前对每个请求执行函数
我正在为我的项目编写一些API功能,使用的是Python 3.4和Django 1.6。
所有功能都运行得很好,但我想为所有这类请求执行一个函数。
举个例子:我在Django项目的API应用中有以下的urls.py文件。
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^getposts', 'Postigs.views.get_posts', name='getPosts'),
url(r'^addpost', 'Postigs.views.add_post', name='addPost'),
url(r'^addcomment', 'Postigs.views.add_comment', name='addComment'),
)
还有处理这些URL请求的views.py
文件。
那么,是否可以为示例执行某个函数呢?
def pre_execute(request):
do_something_before_view_function()
我之前在很多PHP框架中工作过,总是会有一些pre_execute()
函数……我也使用过ASP.NET MVC、Node.js Express.js,这些框架都有一个在请求动作之前触发的函数。
我不相信Django没有这个功能,但我找不到如何实现这个功能。
谢谢。
2 个回答
2
正如iskorum上面提到的,中间件就是答案。或者你可能在找视图装饰器。这里有个链接 https://docs.djangoproject.com/en/dev/topics/http/decorators/