flask 使用mongodb

官方文档https://dormousehole.readthedocs.io/en/latest/patterns/mongoengine.html

1安装flask-mongoengine

推荐使用pip进行安装,如果无法联网也可通过离线方式进行安装,首先下载准备好flask-mongoengine,mongoengine,pymongo,flask-wtf,wtforms,dnspython,email_validator,idna等依赖包,然后依次安装即可。

2配置

基本配置如下:

from flask import Flask
from flask_mongoengine import MongoEngine
...
app = Flask(__name__)
#your other code
app.config['MONGODB_DB'] = 'project1'  #your database name
app.config['MONGODB_HOST'] = '192.168.1.35'  #your remote host
app.config['MONGODB_PORT'] = 12345  #port
app.config['MONGODB_USERNAME'] = 'webapp'   #username
app.config['MONGODB_PASSWORD'] = 'pwd123'   #password
mongo = MongoEngine(app)

如果使用了工厂方法,则如下配置:

from flask import Flask
from flask_mongoengine import MongoEngine
mongo = MongoEngine()
...
app = Flask(__name__)
#your other code
app.config['MONGODB_DB'] = 'project1'  #your database name
app.config['MONGODB_HOST'] = '192.168.1.35'  #your remote host
app.config['MONGODB_PORT'] = 12345  #port
app.config['MONGODB_USERNAME'] = 'webapp'   #username
app.config['MONGODB_PASSWORD'] = 'pwd123'   #password
mongo.init_app(app)

3.映射文档

首先声明model,与mongodb中的文档相对应。方法是创建一个 Document 的子类,然后 声明每个字段:

import mongoengine as me

class Movie(me.Document):
    title = me.StringField(required=True)
    year = me.IntField()
    rated = me.StringField()
    director = me.StringField()
    actors = me.ListField()

4.查询

flask-mongoengine非常智能,直接使用类的 objects 属性即可执行查询。关键字参数用于字段的等值查询:

bttf = Movies.objects(title="Back To The Future").get()

如果要查询所有,可通过迭代的方式获取:

for movie in Movies.objects():
    #your operations

其他增删改操作不再赘述,需要可自行搜索。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装 需要pip install flask这是一个十分轻便的框架,开发迅速,成本上相比Django框架要少很多,...
    dawsonenjoy阅读 1,629评论 0 2
  • #简介 深入学习Flask作为RestFul服务端的架构思路。了解Flask设计哲学、应用场景。包含从开发环境搭建...
    爱睡觉的树阅读 2,586评论 0 1
  • Python资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理等,由伯乐在线持续更...
    dxl1236阅读 4,736评论 2 33
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 3,067评论 1 3
  • Python 资源 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。a...
    叶冷随记阅读 7,870评论 1 225