python - flask-pymongo:我把 mongo 放在一个单独的 python 文件中,它变成了 NoneType
问题描述
我有三个文件: params.py 像这样:
from flask_pymongo import PyMongo
mongo = PyMongo()
server.py 像这样:
from params import mongo
mongo.init_app(app)
一个关于views.py中蓝图中的帖子的函数,如下所示:
from params import mongo
...
mongo.db.courses_cache.find_one_and_update({'uid': 100}, {'$set': {'data': {}, 'hash': '123'}}, upsert=True)
它有这样的错误:
mongo.db.courses_cache.find_one_and_update({'uid': 100}, {'$set': {'data': {}, 'hash': '123'}}, upsert=True) AttributeError: 'NoneType' 对象没有属性“courses_cache”
但是如果我在“mongo.init_app(app)”之后写这个mongo op,就可以了。
mongo.db 在其他 python 文件中只是变成“无”。
我一直以这种方式使用flask-sqlalchemy,零错误,为什么flask-pymongo不能?
解决方案
在调用 after 之前,您不能使用该PyMongo
实例init_app
——我的猜测是在您的 views.py 中,您尚未导入 server.py 或以其他方式确保init_app
已调用该实例。
推荐阅读
- r - 如何在 R 中将宽嵌套数据重塑为长格式?
- angular - 使用 ngIf 时 Angular Swiper 不工作
- mysql - Vue/Sequelize/Axios:删除请求:浏览器控制台显示错误请求,尽管删除确实完成了(?)
- reactjs - 在哪些情况下更新状态而不回调会导致问题?
- react-native - 如何通过 React Native Web 使用 react-navigation 设置文档标题?
- javascript - 无法将 1 个月添加到 moment.js 日期
- python - Apache Beam - 如何从 DoFn 中保存变量以供以后在管道中使用?
- c++ - 当我们添加任何数据类型时,std::unique_ptr 占用太多空间
- amazon-web-services - AWS Glue:调用 o88.pyWriteDynamicFrame 时出错。可选的二进制上下文 (UTF8) 不是一个组
- c# - C# CreateDirectory 找不到部分