[PYTHON] "Un livre qui comprend Flask à partir de zéro" Lecture d'un mémo

Aperçu

C'est un mémo de lecture lors de la lecture des livres suivants. Cela prend environ 15 heures. (Dont, les travaux et recherches autour de la construction de l'environnement prennent environ 3 heures) Comme je l'ai mentionné, j'avais l'impression qu'il s'agissait d'un framework très léger qui pouvait être développé rapidement et était facile à développer.

Aperçu du livre

--Nom du livre: un livre qui comprend Flask à partir de zéro

Environnement

Construction de l'environnement Python

Référence: À propos de Python par défaut pour Mac

--MacOS est livré avec Python 2.7 par défaut

$ ls -la /usr/bin/python*
lrwxr-xr-x  1 root  wheel     75 10  8  2019 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x  1 root  wheel     82 10  8  2019 /usr/bin/python-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
lrwxr-xr-x  1 root  wheel     75 10  8  2019 /usr/bin/python2 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x  1 root  wheel     75 10  8  2019 /usr/bin/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x  1 root  wheel     82 10  8  2019 /usr/bin/python2.7-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
lrwxr-xr-x  1 root  wheel     76 10  8  2019 /usr/bin/pythonw -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
lrwxr-xr-x  1 root  wheel     76 10  8  2019 /usr/bin/pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
-rwxr-xr-x  1 root  wheel  31488  3 18 00:42 /usr/bin/python3
$ ls -la /usr/bin/pip*
-rwxr-xr-x  1 root  wheel  31488  3 18 00:42 /usr/bin/pip3

--Il y a aussi des fichiers liés à Python dans ~ / Library / Python, mais cela contient la bibliothèque installée avec `` `` pip.

Notes de lecture

Caractéristiques du flacon et concept de design

--Werkzeug · Microframework basé sur Jinja2 pour Python, très léger --Werkzeug: une bibliothèque d'utilitaires WSGI simple --WSGI: bibliothèque I / F pour connecter des serveurs Web et des applications Web en Python --Jinja2: bibliothèque de moteurs de modèles souvent utilisée dans le développement Web Python

--RDB est un ensemble avec Django, mais NoSQL etc. peut être utilisé avec Flask

--Haute affinité avec les micro-services

Caractéristiques et concept de design de Django

--Exemples de services utilisant Django: Instagram, Bitbucket, Udemy, Dropbox, Spotify, Youtube

Flacon en général

--Flazk est un framework MTV (Model / Template / View)

Afficher le modèle

--Si vous spécifiez `` méthodes '' dans les paramètres de routage, vous pouvez limiter les méthodes HTTP autorisées pour cette URL. --Si rien n'est spécifié, seul GET est autorisé

--Utilisez `` flash '' pour afficher un message à l'utilisateur

--Si vous utilisez ```url_for '' ``, le nom et la méthode du lien seront automatiquement liés, vous n'avez donc pas besoin de modifier le code même si la destination du lien change. --Bien sûr, il peut être écrit non seulement du côté de la vue, mais aussi du code côté modèle

--``` return render_template ('entries.html', entries = entries) `` `peut être utilisé pour passer des arguments au modèle.

--```url_for ('method name', id = entry.id) `` `peut être utilisé pour passer des arguments pour afficher les méthodes

--app.route ('/ entries / <id>') Vous pouvez recevoir les arguments passés dans url_for``` en faisant quelque chose comme `. --Si vous souhaitez limiter les types d'arguments que vous recevez, utilisez `` <int: id> '' (les autres types entraîneront une erreur).

--Utilisez correctement la redirection et le render_template

modèle

--Le modèle est défini comme une classe en Python

--Définissez le comportement standard lors de la création d'un modèle avec `` def __init __ () ''

--``` def repr (self) décrit le format de sortie de la console lorsque le modèle est référencé (ce n'est pas nécessaire)

--Une fois le modèle défini, il doit être reflété dans la base de données (principalement les deux façons suivantes)

session

--Flask peut gérer les informations de session avec une variable appelée session``` --Settings: session ['session name'] = True``` --Confirmation: ```si ce n'est pas session.get ('nom de session'): (Traitement) `` --Destroy: session.pop ('nom de session', Aucun) --Deuxième argument: valeur à renvoyer si elle a déjà été rejetée (spécifiez `` Aucun '' sauf indication contraire)

DB

--Flask est un framework MTV, donc si vous définissez un modèle, vous pouvez facilement faire fonctionner la base de données en utilisant ORM.

Décorateur

Blueprint

――Si vous souhaitez diviser les fonctions d'une application qui a grandi, utilisez Blueprint (étendre avec une bibliothèque)

La gestion des erreurs

--``` @ app.errorhandler (code d'état au moment de l'erreur) peut définir le processus pour chaque code d'état d'erreur

Ligne de commande Flask

La ligne de commande --flask peut également être utilisée

Usine d'application

--Application Factory vous permet de créer des applications dans des fonctions au lieu de globalement --L'application créée à l'aide de ceci ne peut pas être référencée directement de l'extérieur, appelez-la donc en utilisant la méthode `` current_app ''.

tester

--Il existe différentes bibliothèques de test Python (cette fois, j'utiliserai le test unitaire standard Python)

Autre

--``` statique `` La zone sous le répertoire est automatiquement reconnue comme l'endroit où placer les fichiers statiques tels que CSS et JS.

--Il existe une description pour importer `` jquery-3.2.1.slim.min.js '' depuis le CDN jQuery, mais pour le moment, il est nécessaire de réécrire 3.2.1 en 3.5.1.

Recommended Posts

"Un livre qui comprend Flask à partir de zéro" Lecture d'un mémo
Deep Learning from scratch Chapter 2 Perceptron (lecture du mémo)
Django memo n ° 1 à partir de zéro
D'un livre que les programmeurs peuvent apprendre ... (Python): Pointer
Un mémo qui lit les données de dashDB avec Python et Spark
À partir d'un livre que les programmeurs peuvent apprendre ... (Python): À propos du tri
Création d'un livre de lecture lié à PostgreSQL avec Flask
Faisons un livre Kindle qui visualise des formules mathématiques à partir de fichiers TeX
À partir d'un livre que le programmeur peut apprendre ... (Python): trouver la valeur la plus fréquente
À partir d'un livre que les programmeurs peuvent apprendre ... (Python): examen des tableaux
D'un livre que les pensées du programmeur peuvent être apprises: résumez les parties de petits problèmes
À partir d'un livre que les programmeurs peuvent apprendre (Python): valeur de l'écart de traitement statistique
À partir d'un livre que le programmeur peut apprendre ... (Python): Recherche conditionnelle (valeur maximale)
D'un livre qui apprend de manière intéressante la façon de penser du programmeur (Python)
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Deep Learning fait de zéro [Chapitre 5]
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 6]
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
Créons une application Web de conversion A vers B avec Flask! De zéro ...
À partir d'un livre que le programmeur peut apprendre ... Vérification de la somme de contrôle des runes (longueur fixe)
Mémo du flacon
Mémo d'auto-apprentissage "Deep Learning from scratch" (glossaire illisible)
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
Un mémo que j'ai écrit un tri rapide en Python
GitHub du bon livre "Deep Learning from scratch"
Mémo qui a fait un graphique pour animer avec intrigue
Créez une interface utilisateur de jeu à partir de zéro avec pygame2!
DJango Memo: depuis le début (création d'une vue)
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
"Kit Python" qui appelle des scripts Python depuis Swift
Mémo d'auto-apprentissage «Deep Learning from scratch» (10) Classe MultiLayerNet
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 11) CNN
À partir d'un livre que le programmeur peut apprendre ... Vérification de la somme de contrôle des runes (longueur variable) Partie 2
Un mémo qui détecte le visage de l'image acquise à partir de la caméra Web avec OpenCV de Django et le renvoie.
À partir d'un livre que le programmeur peut apprendre ... Conversion de caractères qui représentent des nombres en type entier