如何使用 flask mongoengine 获取数据

how to get data using using flask mongoengine

我正在使用 mongoengine、flask,我正在尝试将数据插入数据库 我的代码

from flask import Flask,jsonify,request
from flask_mongoengine import MongoEngine
from mongoengine import  connect
app = Flask(__name__)
app.config['MONGODB_DB'] = 'programming'
db = MongoEngine(app)
connect('db')
@app.route('/add', methods = ['POST'])
def add_data():
    #language = {'name':'pyhton'}
    db.languages.insert( {'name': request.form.get('name','python')})
    return jsonify({'message':"Inserted Succesfuuly"})
if __name__ == '__main__':
    app.run(debug=True,port=8000)

Error:
File "/home/ravi/PycharmProjects/flaskapi/helloapi.py", line 21, in add_data db.languages.insert( {'name': request.form.get('name','Ravi')})
AttributeError: 'MongoEngine' object has no attribute 'languages'

帮助将不胜感激..

这意味着您不能像这样在您的数据库上使用集合。 db = MongoEngine(app) 配置您的数据库设置。所以你需要像这样定义 languages 集合:

class languages(db.Document):
    name = db.StringField()
    ...

@app.route('/add', methods = ['POST'])
def add_data():
    #language = {'name':'python'}
    lang = languages(name=request.form.get('name','python'))
    lang.save()
    return jsonify({'message':"Inserted Succesfuuly"})

如果你想插入已经创建的languages集合,你可以使用pymongo:

from pymongo import MongoClient
client = MongoClient()
db = client.db_name
@app.route('/add', methods = ['POST'])
def add_data():
    #language = {'name':'pyhton'}
    db.languages.insert_one( {'name': request.form.get('name','python')})
    return jsonify({'message':"Inserted Succesfuuly"})