0

I am using mongoengine,flask and i am try to insert the data into db my code

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'

Help would be appreciated..

1 Answer 1

1

It means you cannot use collections on your db like this. The db = MongoEngine(app) configure your database setting. So you need define languages collections like this:

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"})

if you want to insert into already created languages collection, you can use 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"})
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.