emanuel_b
Profilo di
Nome | emanuel_b |
---|---|
Indirizzo email | n/a |
Messaggi | 4 |
-
- 2020-03-24 12:42:35
- Re: Problema Flask inserimento dati in db con SqlAlchemy
- Forum >> Programmazione Python >> Web e Reti
- 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.
-
- 2020-03-20 19:06:37
- Problema Flask inserimento dati in db con SqlAlchemy
- Forum >> Programmazione Python >> Web e Reti
- 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> ##############################
-
- 2018-12-05 21:59:03
- Re: Script per schedulazione chiusura automatica
- Forum >> Programmazione Python >> Scripting
- Allora ho seguito il consiglio di Daniele ed analizzato tutto il codice isolando e i problemi ad un ad uno. Beh, errore mio, lo script che ho postato funziona l’errore si trovava nella parte non ancora implementata del bottone_count: impostandolo a zero il programma va alla grande. Sicuramente sarà da migliorare... questione di tempo .
-
- 2018-12-03 20:09:20
- Script per schedulazione chiusura automatica
- Forum >> Programmazione Python >> Scripting
- Ciao a tutti! Sono niubbissimo di Python e questa è la mia prima applicazione. Serve per chiudere automaticamente una serranda ad un determinato orario, la chiusura può pero essere posticipata premendo un pulsante (parte da implementare con i GPIO di raspberry). Sicuramente avrei bisogno di qualche consiglio sulla scrittura del codice, ma mi chiedo il perchè non funzioni o meglio perchè se l'avvio da pycharm e imposto l'orario di chiusura l'applicazione non chiude?
import datetimefrom datetime
import timedelta import time import schedule def chiudi(): serranda_down_PL = requests.get('http://192.168.1.2:8080/status.xml?pl3=1') time.sleep(180) luci_PL = requests.get('http://192.168.1.2:8080/status.xml?pl2=1') def apri(): serranda_up = requests.get('http://192.168.1.2:8080/status.xml?pl4=1') def portiere(): bottone_count = 1 # contatore di quante volte è stato premuto il pulsante da integrare con moduloGPIO now = datetime.datetime.now() # ora attuale t = now.time() x = t.strftime("%X") # estrapolazione dell'ora in formato xx:xx ora_chiusura = datetime.time(19,40,00) ritardo_chiusura = datetime.timedelta(minutes=20) t1 = ora_chiusura.strftime ( "%H"':'"%M" ) while bottone_count == 0: return t1 while bottone_count >= 0 and bottone_count <= 3: # ogni volta che il bottone viene premuto incrementa il ritardo di # chiusura di minuti = d4 t3 = datetime.datetime.combine(datetime.date(1,1,1), t)+ ritardo_chiusura print(type(t3)) t4 = t3.strftime("%H"':'"%M") return t4 while bottone_count > 3: return t4 def chiusura_automatica(): def job(): chiudi() def job2(): apri() schedule.every().day.at(portiere()).do(job) schedule.every().day.at("7:50").do(job2) while True: schedule.run_pending()
--- Ultima modifica di emanuel_b in data 2018-12-03 20:11:32 ---