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.

