In Flask convert form POST object into a representation suitable for mongodb
Solution 1:
>>> from werkzeug.datastructures import ImmutableMultiDict
>>> imd = ImmutableMultiDict([('default', u''), ('required', u'on'), ('name', u'short_text'), ('name', u'another'), ('submit', u'Submit')])
>>> imd.to_dict(flat=False)
>>> {'default': [''],
'name': ['short_text', 'another'],
'required': ['on'],
'submit': ['Submit']}
.to_dict(flat=False)
is the thing to keep in mind. See the relevant documentation
Solution 2:
The Flask ImmutableMultiDict
data structure has a built in to_dict
method.
This knowledge in addition to the Flask request
object form
property being an ImmutableMultiDict
allows for simple handling of a form POST request to MongoDB.
See below for a naive example:
from flask import request
@app.route('/api/v1/account', methods=['POST'])
def create_account():
"""Create user account"""
account_dict = request.form.to_dict()
db.account.insert_one(account_dict)