python - 在实用程序函数中使用 Django request.session
问题描述
我正在尝试request.session.get('items', {})
从自定义 util 函数util.py 调用。
但在该文件中,请求对象不可访问,我可以从 views.py 传递请求对象,但我不想这样做。有没有办法在自定义函数(不是视图/模板)中使用请求对象。
我试图从中导入,django.http import HttpRequest
但这个类没有任何会话变量。django初学者,感谢任何帮助。
实用程序.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 之类的内容。
每当有人通过服务器对其发出请求时,就会生成它,这就是为什么您将其视为视图函数的参数的原因。
我想你可以把它变成某种全局变量,但这是一条荒谬的路线。
推荐阅读
- python - 在 sqlachemy 中结合 like 和 filter_by 方法
- mapbox - 让 Mapbox 轮廓显示出来
- python - 在嵌套列表中查找字符串的最后一次出现?
- java - BigQuery Java API 将行转换为 Java 对象
- azure-devops - 在 Windows 机器上设置自托管代理:写错误:发生错误:未配置
- orm - CreateQueryBuilder 在数组中查找字符串?
- c# - C# 在解决方案上禁用闭包
- php - 我不能在 for 循环中形成一个数组来回显当前计数吗?(PHP)
- flutter - 为什么我应该使用带有日历而不是静态地图的 Bloc?
- vba - 我需要 Word 中的一个宏,将连续信件的每一页单独保存为 PDF