Pre: install flask-mongoengine with pip:
pip install flask-mongoengine
Basic setup is easy, just fetch the extension:
from flask import Flask
from flask_mongoengine import MongoEngine
app = Flask(__name__)
app.config.from_pyfile('the-config.cfg')
db = MongoEngine(app)
Or, if you are setting up your database before your app is initialized, as is the case with application factories(如果在应用初始化之前建立数据库的话我们需要使用应用工厂)
from flask import Flask
from flask_mongoengine import MongoEngine
db = MongoEngine()
...
app = Flask(__name__)
app.config.from_pyfile('the-config.cfg')
db.init_app(app)
By default, Flask-MongoEngine assumes that the mongod instance is running on localhost on port 27017, and you wish to connect to the database named test.
Flask-MongoEngine 默认mongod实例运行在 localhost 的27017端口,如果你想要连接位于其他主机的数据库就需要按照官方网站提供的参考去做。
常用查询集Custom Queryset
flask-mongoengine attaches the following methods to Mongoengine’s default QuerySet:
get_or_404: works like .get(), but calls abort(404) if the object DoesNotExist.
first_or_404: same as above, except for .first().
paginate: paginates the QuerySet. Takes two arguments, page and per_page.
paginate_field: paginates a field from one document in the QuerySet. Arguments: field_name, doc_id, page, per_page.
flask-mongoengine automatically generates WTForms from MongoEngine models
本文内容是从基于Flask与MongoDB,使用MVC模式开发的项目中提取出来的一部分,只列出重点部分,下为简单的项目结构
先看一下manage.py
#!/usr/bin/env python
import os, sys
sys.path.append(os.path.abspath(os.path.dirname(__file__)))
from flask_script import Manager, Server
from omsapp import create_app#引入app创建函数
app = create_app(os.getenv('config') or 'default')#创建app
manager = Manager(app)
#命令管理的实例化
# Turn on debugger by default and reloader
manager.add_command("runserver", Server(
use_debugger = True,
use_reloader = True,
host = '0.0.0.0',
port = 5000)
)
if __name__ == "__main__":
manager.run()
然后开始追溯flask-mongoengine
/omsapp/__init__.py
注意:
flask Blueprint在这里的用法
import os
from flask import Flask
from flask_mongoengine import MongoE