2016-12-16 150 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"})