SlideShare a Scribd company logo
1 of 17
Session 3/3
Olivier Rovellotti
Python flask
Lancer Flask
Set FLASK_APP=mypython.py
flask run
Etudiant 1
Etudiant 2
Etudiant 3
Etudiant 4
Les étudiants de la classe Etudiant 1
Détail de l’étudiant
Les templates
<!DOCTYPE html>
<html>
<head>
<title>un etudiant de la classe</title>
</head>
<body>
<h1>Voila la liste des etudiants</h1>
<div class="container">
{% for key, value in dictionaire.items() %}
<li> <a href="./etudiant/{{ key }}">{{ key }}</a></li>
{% endfor %}
</div>
</body>
</html>
dictionaire = {"Olivier": '0609566656', "Kevin": '065567785',"Shana": '065767785'}
@app.route('/')
def classe():
return render_template('TemplateClasse.html', dictionaire=dictionaire)
<form method="POST" action="{{ url_for('add_post') }}">
<dl>
<dt>Nom:
<dd><input type="text" size="30" name="name">
<dt>Telephone:
<dd><input type="text" size="30" name="telephone">
<dd><input type="submit" value="Ajouter">
</dl>
</form>
Les Ajouts
@app.route('/add_etudiant', methods=['POST'])
def add_post():
name= request.form['name']
telephone= request.form['telephone']
dictionaire[name] = telephone
return redirect(url_for('classe'))
Et voila
And now ?
Cool : Database API Specification !
PEP 248PEP 248PEP 248 PEP 248
Si vous avez déjà travaillé avec une autre interface compatible, vous
devriez sans trop de problèmes retrouver vos points de repère.
PEP 248
connect
cursor
execute
SQLite, hyper lite
• Created by D. Richard Hipp
• Offline Applications
• Small Size around 0.5 MB
• Entire database in a single file
• Server less applications
Outil: http://sqlitebrowser.org/
Code:
import sqlite3
conn = sqlite3.connect(«….»)
cursor = conn.cursor()
cursor.execute (« select * from ... »)
for row in cursor: print(row)
Lire des données
@app.route('/')
def classe():
conn = sqlite3.connect(‘ …… ‘)
cursor = conn.cursor()
liste = cursor.execute ('select * from etudiant')
return render_template('TemplateClasse.html', liste=liste)
conn.close() {% for row in liste%}
<tr>
{% for d in row %}
<td>{{ d }}</td>
{% endfor %}
</tr>
{% endfor %}
INSERT INTO etudiant (id,nom,telephone) VALUES
('{}','{}','{}')""".format(1,name,telephone
Ecrire des donées
@app.route('/add_etudiant', methods=['POST'])
def add_post():
name= request.form['name']
telephone = request.form['telephone']
conn = sqlite3.connect(‘….')
cursor = conn.cursor()
t = cursor.execute("""INSERT INTO etudiant (id,nom,telephone) VALUES ('{}','{}','{}')""".format(1,name,telephone) )
conn.commit()
conn.close()
return redirect(url_for('classe'))
Twitter: @orovellotti
www.natural-solutions.eu
Merci
Olivier_rovellotti@natural-solutions.eu

More Related Content

More from Olivier Rovellotti (20)

The quest for new empowered citizen scientists
The quest for new empowered citizen scientistsThe quest for new empowered citizen scientists
The quest for new empowered citizen scientists
 
A la découverte de l'ux design
A la découverte de l'ux designA la découverte de l'ux design
A la découverte de l'ux design
 
Gamification, Ludification de l’expérience énergie
Gamification, Ludification de l’expérience énergie Gamification, Ludification de l’expérience énergie
Gamification, Ludification de l’expérience énergie
 
Le donut tour metropole
Le donut tour metropoleLe donut tour metropole
Le donut tour metropole
 
Ns ux-emotion
Ns ux-emotionNs ux-emotion
Ns ux-emotion
 
Ns ux-ethique
Ns ux-ethiqueNs ux-ethique
Ns ux-ethique
 
Datasud barcamp
Datasud barcampDatasud barcamp
Datasud barcamp
 
Datasud barcamp 2
Datasud barcamp 2Datasud barcamp 2
Datasud barcamp 2
 
Scapin et bastien
Scapin et bastienScapin et bastien
Scapin et bastien
 
Ns cleo lodel ux
Ns cleo lodel uxNs cleo lodel ux
Ns cleo lodel ux
 
Ns python-flask
Ns python-flaskNs python-flask
Ns python-flask
 
Ns python web 1
Ns python web 1Ns python web 1
Ns python web 1
 
Ns python-exercices
Ns python-exercicesNs python-exercices
Ns python-exercices
 
Ns python 2
Ns python 2Ns python 2
Ns python 2
 
Ns algo 3
Ns algo 3Ns algo 3
Ns algo 3
 
Ns algo 2
Ns algo 2Ns algo 2
Ns algo 2
 
Ns python 1
Ns python 1Ns python 1
Ns python 1
 
Ns algo 1
Ns algo 1Ns algo 1
Ns algo 1
 
Ns ux-session-2
Ns ux-session-2Ns ux-session-2
Ns ux-session-2
 
Ns opendata biodiversite
Ns opendata biodiversiteNs opendata biodiversite
Ns opendata biodiversite
 

Ns python flask 3

  • 3. Etudiant 1 Etudiant 2 Etudiant 3 Etudiant 4 Les étudiants de la classe Etudiant 1 Détail de l’étudiant
  • 4. Les templates <!DOCTYPE html> <html> <head> <title>un etudiant de la classe</title> </head> <body> <h1>Voila la liste des etudiants</h1> <div class="container"> {% for key, value in dictionaire.items() %} <li> <a href="./etudiant/{{ key }}">{{ key }}</a></li> {% endfor %} </div> </body> </html> dictionaire = {"Olivier": '0609566656', "Kevin": '065567785',"Shana": '065767785'} @app.route('/') def classe(): return render_template('TemplateClasse.html', dictionaire=dictionaire)
  • 5. <form method="POST" action="{{ url_for('add_post') }}"> <dl> <dt>Nom: <dd><input type="text" size="30" name="name"> <dt>Telephone: <dd><input type="text" size="30" name="telephone"> <dd><input type="submit" value="Ajouter"> </dl> </form> Les Ajouts @app.route('/add_etudiant', methods=['POST']) def add_post(): name= request.form['name'] telephone= request.form['telephone'] dictionaire[name] = telephone return redirect(url_for('classe'))
  • 8. Cool : Database API Specification ! PEP 248PEP 248PEP 248 PEP 248
  • 9.
  • 10. Si vous avez déjà travaillé avec une autre interface compatible, vous devriez sans trop de problèmes retrouver vos points de repère. PEP 248 connect cursor execute
  • 11. SQLite, hyper lite • Created by D. Richard Hipp • Offline Applications • Small Size around 0.5 MB • Entire database in a single file • Server less applications
  • 13. Code: import sqlite3 conn = sqlite3.connect(«….») cursor = conn.cursor() cursor.execute (« select * from ... ») for row in cursor: print(row)
  • 14. Lire des données @app.route('/') def classe(): conn = sqlite3.connect(‘ …… ‘) cursor = conn.cursor() liste = cursor.execute ('select * from etudiant') return render_template('TemplateClasse.html', liste=liste) conn.close() {% for row in liste%} <tr> {% for d in row %} <td>{{ d }}</td> {% endfor %} </tr> {% endfor %}
  • 15. INSERT INTO etudiant (id,nom,telephone) VALUES ('{}','{}','{}')""".format(1,name,telephone
  • 16. Ecrire des donées @app.route('/add_etudiant', methods=['POST']) def add_post(): name= request.form['name'] telephone = request.form['telephone'] conn = sqlite3.connect(‘….') cursor = conn.cursor() t = cursor.execute("""INSERT INTO etudiant (id,nom,telephone) VALUES ('{}','{}','{}')""".format(1,name,telephone) ) conn.commit() conn.close() return redirect(url_for('classe'))