2016-12-16 5 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, как это. 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"})