This commit is contained in:
Julien Palard 2020-10-01 14:13:21 +02:00
parent 172da54505
commit 6e8e0c6230
1 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,86 @@
status: hidden
title: Python — Flask
slug: Aecheth6
robots: noindex
# flask
Cours à distance sur [flask](https://palletsprojects.com/p/flask/).
C'est le 2ème cours sur flask, si vous avez raté le premier en gros on
a utilisé [PyCharm](https://www.jetbrains.com/pycharm/) pour se créer
un projet, ce qui à automatiquement crée un venv dans lequel on a fait
un `pip install flask`. Pour ceux qui n'ont pas encore PyCharm, prenez
la version pro, elle est gratuite avec votre adresse Sup'Internet.
## Voix
Comme la dernière fois on va utiliser
[Mumble](https://fr.wikipedia.org/wiki/Mumble), un logiciel libre de
voix sur IP, prenez le temps de configurer le « push to talk » avant
de rejoindre le salon.
Documentation pour se connecter : https://docs.framasoft.org/fr/jitsimeet/mumble.html
- Salon : Sup
- Mot de passe : pomme@412
## Chat
Comme la dernière fois on va utiliser IRC sur freenode sur le salon
`#supinternet`. Utilisez https://kiwi.freenode.net si vous n'avez pas
de client IRC (ne cliquez *pas* sur "j'ai un mot de passe", si vous
n'avez pas de compte Freenode).
## Étape 0 — Hello world
Suivez simplement le tutoriel officiel de flask jusqu'a avoir un hello
world fonctionnel en localhost.
Utilisez [ngrok](https://ngrok.com/) et envoyez moi l'URL sur IRC pour
que je valide cette étape.https://ngrok.com/.
Rendus:
- Maxime : http://00b15430.ngrok.io/
- Léo (Olyno) : http://afcb7f61.ngrok.io/
- Raphael : http://f34f00ff.ngrok.io/
- Ilan : http://279e0d80.ngrok.io/
## Étape 1 — Templating
Créez deux templates `index.html` et `about.html`. Flask utilise
[Jinja2](https://jinja.palletsprojects.com/en/2.11.x/templates/).
Utilisez `extends` pour avoir `base.html` avec vos tags html / head /
title / ... et utilisez `extends` dans vos `index.html` et
`about.html` pour simplement surcharger un block `body`.
## Étape 2 — SQLite
Utilisez une base de donnée
[SQLite](https://flask.palletsprojects.com/en/1.1.x/patterns/sqlite3/#sqlite3)
dans laquelle vous crerez une seule table: `message`, avec une colonne `text`.
Implémentez deux routes: `POST /messages/` et `GET /messages/`.
Un `POST /messages/` permet d'ajouter un message (le message doit etre
dans le corps de la requête) et un `GET /messages/` permettra
d'obtenir tous les messages.
Le `POST` ne doit rien renvoyer. Le `GET` doit tout renvoyer sous
forme d'une liste JSON contenant des objets JSON, de la forme:
```json
[
{"text": "Hello"},
{"text": "world"}
]
```