Flask JSON postgres enregistrement
Bonjour,
Dans mon appli, je veux enregistrer des données directement au format Json sous postgres.
Code:
1 2 3 4 5 6
|
-- REM INSERT 14
CREATE TABLE LOGWATCHFILE(
id serial not null primary key,
logwatch json
); |
je crée la table ok, et teste l'insertion d'un donnée -> ok
sous Flask avec Flask-sqlcodegen je génère ma classe dites model.
Code:
1 2 3 4 5 6
|
class Logwatchfile(db.Model):
__tablename__ = 'logwatchfile'
id = db.Column(db.Integer, primary_key=True, server_default=db.FetchedValue())
logwatch = db.Column(db.JSON) |
Jusqu'a là rien de transcendent .
Je crée mon formulaire qui doit envoyer du JSON -> ok et j'écris le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
@documents.route('/documents/watch', methods=['POST'])
def documentWatch():
if request.method=='POST':
'''modify process watch'''
data = request.get_json()
print(data)
logwatchfile = Logwatchfile(data)
#db.session.add(logwatchfile)
#db.session.commit()
return json.dumps({'status':'OK','watchFile':'run'});
else:
return json.dumps({'status':'KO','watchFile':'error'}); |
Mais même avant l'insertion quand je peuple l'objet je me fais insulter ?? et la je sèche, j'avoue que je ne comprends pas.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
reraise(exc_type, exc_value, tb)
File "/home/olivier/projets/promanpro/promanpro/server/venv/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/olivier/projets/promanpro/promanpro/server/venv/lib/python3.4/site-packages/flask/app.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "/home/olivier/projets/promanpro/promanpro/server/venv/lib/python3.4/site-packages/flask/app.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/olivier/projets/promanpro/promanpro/server/documents/views.py", line 19, in documentWatch
logwatchfile = Logwatchfile(2,data)
TypeError: __init__() takes 1 positional argument but 3 were given |
J'utilise Flask-SQLAlchemy et Flask en version 0.11
J'ai cherché pas mal d'exemple sous notre ami Goo.. mais je n'ai pas trouvé mon problème.
Cela parait si simple ?
Si une bonne âme passe par là ou ici ;)
PS : Niveau débutant sous python ... aie !
Olivier