2016-12-16 262 views
0

我使用mongoengine,烧瓶,我尝试将数据插入到数据库 我的代码使用使用烧瓶mongoengine

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'

帮助,将不胜感激如何将数据..

回答

1

这意味着你不能像这样在你的数据库上使用集合。 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"})