首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何让一个函数在每次用户访问我的Django应用程序时运行?

我如何让一个函数在每次用户访问我的Django应用程序时运行?
EN

Stack Overflow用户
提问于 2012-04-22 04:57:44
回答 1查看 221关注 0票数 0

我有一个功能,可以检查是否应该向在我的Django应用程序中延迟付款的用户收取滞纳金。由于我不能编写cron作业,所以每次用户访问我的应用程序时,我都必须运行此函数。

我可以在应用程序中的每个视图开始时调用此函数,但这将大量重复函数名。

我如何让一个函数在每次用户访问我的Django应用程序时运行?我是否应该在settings.py中调用该函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-22 05:10:12

编写您自己的中间件,并将其添加到您设置的中间件列表中。中间件本身只是一个带有一些函数的类,这些函数充当请求处理链中某些点的钩子:

代码语言:javascript
运行
复制
class MyMiddleware (request):

    process_request(self,request):
       # do something here before passing the request to the view

    process_response(self,request,response):
       # do something here before passing the response to the client

还有一些其他的钩子可以用来指定你的函数的确切位置,你最好看看the docs,看看哪一个最适合你的情况。

在设置中,只需将您的中间件添加到中间件类:

代码语言:javascript
运行
复制
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'your_app.middleware.MyMiddleware',

)

这应该就是你想要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10262946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档