[英]“TypeError: pre_get_callback() missing 1 required positional argument: 'lookup'” when using the get event hook in Eve
[英]Get info of an item from database in pre-put callback in Eve
我有带有subId
项目和存储在 mongoDB 中的其他一些字段。 在之前PUT
请求被提交,我要检查,如果subId
这是在标题中传送PUT
请求等于subId
存储在MongoDB中所需的项目。 所以,我决定使用pre_put_callback
来做这个检查。 现在,我可以得到subId
在此功能的请求头,但我不知道如何访问subId
从MongoDB的,其项目的_id
是由用户提供的作为请求的路径pre_put_callback
功能。 有没有办法从pre_put_callback
函数访问该项目的subId
(存储在 MongoDB 中)?
可以从预先请求事件钩访问的MongoDB数据库的项目,例如pre_put_callback
使用current_app
的flask
包。 例如对于 pre_PUT 事件挂钩,它可以按如下方式访问:
from flask import current_app as app
from eve import Eve
def pre_put_callback(resource, request, lookup):
resource_db = app.data.driver.db[resource]
item = resource_db.find_one(lookup)
print("DB Item: ", item)
app = Eve()
app.on_pre_PUT += pre_put_callback
app.run()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.