在Django以外使用User信息

来源:互联网 发布:马踏棋盘算法 编辑:程序博客网 时间:2024/06/10 18:52

Using User info outside request in Django
在Django以外使用User信息(使用添加中间件的方法)

1. Create "middleware" directory in project directory.
在项目目录中创建"middleware"子目录

2. Create python file name "__init__.py" and "threadlocals.py" in "middleware" directory.
在 "middleware" 目录中创建 "__init__.py"文件和"threadlocals.py"文件

3. in side "threadlocals.py" copy this code
    在 "threadlocals.py" 源文件中添加以下代码:    

    # threadlocals middleware    try:      from threading import local    except ImportError:      from django.utils._threading_local import local    _thread_locals = local()    def get_current_user():        return getattr(_thread_locals, 'user', None)    class ThreadLocals(object):      """Middleware that gets various objects from the        request object and saves them in thread local storage."""        def process_request(self, request):          _thread_locals.user = getattr(request, 'user', None)

4. in "settings.py" add "project_name.middleware.threadlocals.ThreadLocals" to the MIDDLEWARE_CLASSES variable.
配置文件"settings.py"中,MIDDLEWARE_CLASSES 设置中添加 "project_name.middleware.threadlocals.ThreadLocals" 条目,
这里的project_name指的是你的项目名称

5. using like this
像下面一样使用: 

from project_name.middleware import threadlocals
user = threadlocals.get_current_user()