J’ai décidé de tester le système de “sign-in” de google pour authentification des gens sur un site web. En regardant plusieurs vidéos de google DEV sur youtube j’ai remarqué qu’ils utilisent souvent un serveur web python : Flask
Voilà donc quelques tests rapides de ce que l’on peut faire avec Falsk.
Test basique
Création d’un site qui affiche une string de bienvenu.
############## #Test basique# ############## #On creer un decorateur qui prend en parametre une route correspondant a une page web @app.route('/') #on decore notre fonction avec le decorateur precedement creer. Cette fonction sera en charge de creer la page web correspondant a la route du decorateur def index(): return "Hello" #On refait un autre test pour une autre page web. Pour info le nom de la fonction n a aucun importance @app.route('/test1') def unTest(): return "Test 1
Test multi-route
Plusieurs adresses renvoyant vers le même site basique.
################## #Test multi route# ################## #On refait un autre test pour une autre page web. On peut avoir plusieur decorateur pour un seul fonction @app.route('/test31') @app.route('/test32') @app.route('/test33') def unTest(): return "Meme page pour test31 et test32 et test33"
Test route dynamique
Le site est un peu plus complexe car il utilise des informations passe dans l’adresse du site.
###################### #Test route dynamique# ###################### @app.route('/dynamique/<nom>') #Attention : le parametre de la route doit etre le meme que le nom de l argument dans la fonction def routeDynamik(nom): return "Bonjour : " + nom
Test route redirection
le site vous redirige vers google en utilisant le code erreur 301
######################## #Test route redirection# ######################## @app.route('/testRedirect') def testRedirect(): return redirect('http://www.google.fr')
Test template
Le site est créé à partir d’un Template html
################ #Test templates# ################ @app.route('/template') #Il faut absolument que la page correspondante html existe dans le repertoire template. La commande ll permetera de le verifier avec ll templates/hello_world.html def TestTemplate(): return render_template('hello_world.html')
Il faut également créer un fichier html de Template dans le répertoire “/template” avec le nom correspondant. Le nom du répertoire doit être respecte.
[root@domU-12-31-39-14-5D-9B templates]# cat hello_world.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>hello</title> </head> <body> <h1>hello</h1> </body> </html>
Test template dynamique
Le site crée à partir du Template prend en compte des informations passe depuis la fonction python.
################################# #test avec template plus dynamik# ################################# @app.route('/template2') #Il faut absolument que la page correspondante html existe dans le repertoire template. La commande ll permetera de le verifier avec ll templates/hello_world.html def TestTemplateidyna(): return render_template('complex.html', titre="un titre de site", contenu="un contenu de site")
Comme pour l’exemple précédant il faut créer le Template html dans le répertoire template.
[root@domU-12-31-39-14-5D-9B templates]# cat complex.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>{{ titre }}</title> </head> <body> <h1>{{ titre }}</h1> {{ contenu }} </body> </html>
L’ensemble du code est disponible sur bitbucket : https://bitbucket.org/charly37/decouverteflask