Forum
>>
Programmazione Python
>>
Web e Reti
>>
Problema Flask inserimento dati in db con SqlAlchemy
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da emanuel_b |
2020-03-20 19:06:37 - Problema Flask inserimento dati in db con SqlAlchemy
|
Salve a tutti, sto scrivendo questa web-app per la raccolta ordini di una tintoria utilizzando Flask. Il sito in se si muove unico problema è che dalla pagina Add.html non riesco ad aggiungere alcun ordine al db. Chiedo il vostro aiuto, non riesco a capire dove ho sbagliato!
##############GESTIONEORDINI.py########### import os from flask import Flask, render_template, url_for, redirect, session from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate import datetime from forms import AddOrdine, DelOrdine app = Flask(__name__) app.config['SECRET_KEY'] = 'mysecretkey' ############################################ #### SQL DB SECTION ########## ############################################ basedir = os.path.abspath(os.path.dirname(__file__)) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite') app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) Migrate(app, db) ######### MODEL ###################### ########################################################## ######### TABELLA ORDINE/UTENTE ###################### class OrdineUtente(db.Model): __tablename__ = 'ordineutente' id = db.Column(db.Integer, primary_key=True) nomeut = db.Column(db.Text) gc = db.Column(db.Integer) pant = db.Column(db.Integer) cam = db.Column(db.Integer) note = db.Column(db.UnicodeText) date = db.Column(db.DateTime, default=datetime.datetime.utcnow) def __init__(self, nomeut, gc, pant, cam, note, date): self.nomeut = nomeut self.cam = cam self.gc = gc self.pant = pant self.note = note self.date = date def __repr__(self): return self.id, self.nomeut, self.gc, self.pant, self.cam, self.id db.create_all() ######################################### ###### View Functions - Have Forms ###### ######################################### @app.route('/') def index(): return render_template("home.html") @app.route('/add', methods=['GET', 'POST']) def add_ordine(): form = AddOrdine() if form.validate_on_submit(): newordine = OrdineUtente( form.nomeutente.data, form.giacche.data, form.pantaloni.data, form.camicie.data, form.note.data ) db.session.add(newordine) db.session.commit() return redirect(url_for('lista')) return render_template('add.html', form=form) @app.route('/del', methods=['GET', 'POST']) def delete_ordine(): form = DelOrdine() if form.validate_on_submit(): id = form.id.data pup= OrdineUtente.query.get(id) db.session.delete(pup) db.session.commit() return redirect(url_for('lista')) return render_template('delete.html', form=form) @app.route('/lista') def lista_ordine(): items = OrdineUtente.query.all() return render_template('lista.html', items=items) if __name__=='__main__': app.run(debug=True) ##########FORMS.py########## from flask_wtf import FlaskForm from wtforms import SelectField, SubmitField, TextAreaField, IntegerField class AddOrdine(FlaskForm): nomeut = SelectField(u'User Name:', choices = [('pippo','Pippo'), ('pluto','Pluto'), ('paperino','Paperino'), ('topolina','Topolina'), ('topolino','Topolino') ]) giacche = SelectField(u'Shirts:', choices = [('1','1'), ('2','2'), ('3','3'), ('4','4') ]) pantaloni = SelectField(u'Pants:', choices = [('1','1'), ('2','2'), ('3','3'), ('4','4') ]) camicie = SelectField(u'Jackets:', choices = [('1','1'), ('2','2'), ('3','3'), ('4','4') ]) note = TextAreaField('Note: ') submit = SubmitField() class DelOrdine(FlaskForm): id = IntegerField('Order to delete ') submit = SubmitField("delete")ù ###########ADD.html########### {%extends "base.html"%} {%block content%} <form method="post"> {{form.nomeut.label}}{{form.nomeut}} {{form.giacche.label}}{{form.giacche}} {{form.camicie.label}}{{form.camicie}} {{form.pantaloni.label}}{{form.pantaloni}} {{form.note.label}}{{form.note}} {{form.submit}} {%endblock%} </form> ############################## |
|
Scritto da Daniele aka Palmux |
2020-03-22 16:13:19 - Re: Problema Flask inserimento dati in db con SqlAlchemy
|
Ciao, ma che errore ottieni?
|
|
Scritto da emanuel_b |
2020-03-24 12:42:35 - Re: Problema Flask inserimento dati in db con SqlAlchemy
|
Ciao Daniele e grazie per l'aiuto. Ho risolto. Praticamente mancava il Csrf token per cui il forum is_validate() restituiva sempre falso ed il forma non veniva caricato.
|
|
Scritto da Daniele aka Palmux |
2020-03-24 15:23:30 - Re: Problema Flask inserimento dati in db con SqlAlchemy
|
Bene così, da sempre una certa soddisfazione risolvere i problemi in autonomia.
Happy coding. |
Pagina: 1
Esegui il login per scrivere una risposta.