python - 在实用程序函数中使用 Django request.session

标签 python django

我正在尝试从自定义 util 函数 util.py 调用 request.session.get('items', {})

但在该文件中,request 对象不可访问,我可以从 views.py 传递请求对象,但我不想这样做。有什么方法可以在自定义函数(不是 View /模板)中使用请求对象。

我尝试从 django.http import HttpRequest 导入,但此类没有任何 session 变量。 django 初学者,感谢任何帮助。

util.py:

def processData(data=None):
   ## get items form  session
   items = request.session.get('items', {})  ## error name 'request' is not defined
   # append with data
   items.update(data)
   return items 

最佳答案

你必须通过它。没有其他选择。

request 不是一些通用变量,您只能从其他地方导入。相反,它是一组特定于刚刚提出的特定请求的信息。它包含诸如 cookie 和当前 URL 之类的内容。

它会在有人通过服务器发出请求时生成,这就是为什么您将它视为 View 函数的参数的原因。

我想你可以把它变成某种全局变量,但这是一种荒谬的做法。

关于python - 在实用程序函数中使用 Django request.session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58153911/

相关文章:

python - Django 中的区域设置/国际化

python - 使用 python shelf 类给出编码错误

python - Django 教程 : Generic Views. 属性错误

python - 如何在django rest框架中上传多个文件

django - 从所有用户删除 session key

python - 在 Django 中,如何查询登录用户的 MYSQL 数据库? (即特定用户的结果,无需对用户 ID 进行硬编码)

python - 我如何使用 Django session 来读取/设置 cookie?

python找出已添加哪些列表以诊断内存泄漏

javascript - 获取类型错误 : 'NoneType' object is not iterable when sending ajax post request django views

javascript - Django 模板不执行 js 函数