Enrico Bacis Marco Rosa
Università degli Studi di Bergamo
a.k.a. in medio stat virtus
from flask import Flask # si importa Flask
app = Flask(__name__) # si crea l'app (__name__ su pythonanywhere)
@app.route('/') # si crea un instradamento (route) di default ('/')
def root(): # la funzione (ossia il controller) da eseguire
return "hello, world!" # deve tornare una stringa (il response body)
app.run(host="0.0.0.0", port=5000) # avvia il server
return HTML
pass variables
conditionals (if)
loops (for)
creare una route "/supermarket" che mostri una tabella dei prodotti disponibili (nome prodotto, costo)
Per i prodotti gratuiti mostrare "free" in grassetto
Per gli altri stampare mostrare "x €"
Applicare stili a piacere
Eseguire su pythonanywhere
prices = {'strawberry': 2.0, 'lemon': 1.0, 'bitcoin': 7000.0, 'spam': 0}
mycontroller
mycontroller
creare una route "/getprice/<product>" che restituisca il prezzo del prodotto oppure un messaggio a piacere se il prodotto non c'è
Applicare stili a piacere
Eseguire su pythonanywhere
prices = {'strawberry': 2.0, 'lemon': 1.0, 'bitcoin': 7000.0, 'spam': 0}
creare una route "/calculator" che agisca come una calcolatrice (2 campi input nella form e calcolo della somma)
Applicare stili a piacere
Eseguire su pythonanywhere
creare una route "/notes" che:
Mostri in un elenco le note presenti nella lista
Abbia una form che permetta di aggiungerne
Applicare stili a piacere
Eseguire su pythonanywhere
notes = []
import sqlite3
notesdb = "notes.db"
def init_notes_db(reset=False):
connection = sqlite3.connect(notesdb)
if reset:
connection.execute("DROP TABLE IF EXISTS notes;")
connection.execute("CREATE TABLE IF NOT EXISTS notes (data VARCHAR)")
connection.commit()
connection.close()
init_notes_db()
Rifare l'esercizio "/notes" utilizzando un
database SQLite
Eseguire su pythonanywhere
Creare una tabella nel database con 2 campi: data e userid
Creare la route "/secret/<userid>" che mostri e salvi solo le note per quell'userid
Eseguire su pythonanywhere
link to slides: slides.com/enricobacis/websites
link to code: github.com/unibg-seclab/flask-bdweb