Cette première activité montre comment créer une application Todo liste qui affiche une seule page html avec un contenu statique.
Le sous-dossier templates va contenir toutes les pages html du projet
#! /usr/bin/python # -*- coding:utf-8 -*- from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True)
Une fonction décorée par @app.route pour renvoyer une page Web est appelée vue.
ATTENTION :
Mon application ne doit pas avoir deux routes identiques, ou deux vues portant le même nom !
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Application Todo</title> </head> <body> <h1>Todo liste</h1> <div>Ajouter une nouvelle tâche : <form action="/ajout" method="POST"> <input type="text" name="tache"> <input type="submit"></div> </form> </div> <div> <ul> <li><input type="checkbox">Tâche 1</li> <li><input type="checkbox">Tâche 2</li> <li><input type="checkbox">Tâche 3</li> </ul> </div> </body> </html>
D:\...\projet_1>python app.py * Serving Flask app "app" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: on * Restarting with stat * Debugger is active! * Debugger PIN: 881-708-049 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
En cas d'erreur de ce type :
self.socket.bind(self.server_address) OSError: [WinError 10013] Une tentative d’accès à un socket de manière interdite par ses autorisations d’accès a été tentée
if __name__ == '__main__': app.run(debug=True, port=5005)
Dès que j'ai lancé l'application, je ne peux plus saisir de commandes dans l'invites de commandes car l'application est lancée. Je ne dois pas fermer la fenêtre sinon l'application de fonctionne plus.