WIP
J'écris souvent des serveurs Web en utilisant Flask, je vais donc résumer les pages auxquelles je me réfère souvent. Je pense que ce sera une collection de liens pour le moment, mais si j'ai le temps, j'aimerais ajouter plus de contenu. (Il est temps d'utiliser FastAPI)
À propos de SECRET_KEY
Pour le tutoriel officiel, il est recommandé d'utiliser ʻos.urandom (12) `, qui est ** anti-pattern **
Lors de l'exécution de gunicorn avec plusieurs travailleurs, la protection de session et CSRF (Flask-WTF) ne fonctionne pas correctement car une SECRET_KEY différente est définie en fonction du travailleur.
session
En flacon de vanille sans bouchons
doit être défini sur
SecretKey`, mais cela n'utilise cette clé que pour les calculs de hachage afin d'éviter de falsifier le contenu stocké en session. , Le contenu de la session elle-même n'est pas chiffré.server session Vous devez installer un plug-in. Les options de backend pour l'enregistrement des sessions incluent Redis, d'autres NoSQL, FileSystem, SQL, etc.
En tant que plug-in célèbre
etc. FLask-Session accède au backend qui contient la session depuis Flask, mais Beamer fonctionne comme le middleware du WSGI (par exemple, Gunicorn) utilisé. Ce dernier fournit également une fonction Cache. Il a été confirmé que Flask-Session ne fonctionne pas correctement lorsque SQLAlchemy est spécifié comme backend (c'est-à-dire SQL). (À partir de mai 2020.5)
logging Flask et ses plug-ins fournissent souvent une fonction de sortie de journal. Pour capturer le journal de sortie avec la poignée de journal de l'unité principale Flask et le sortir
import logging
from flask.logging import default_handler #Manipulateur de bûches pour corps de flacon
#Autre importation, etc.
from flask_cors import CORS
def create_app():
# init_Divers traitements tels que l'application
#Ici, le plug-in que vous souhaitez enregistrer`flask_cors`À
cors_err_lggr = logger.getLogger('flask_cors')
#La plupart des plug-ins utilisent le nom de l'enregistreur intégré__name__Est-ce spécifié dans?
cors_err_lggr.setLever(logging.DEBUG)
#Ajout du gestionnaire de journaux par défaut
cors_err_lggr.addHandler(default_handler)
#Autre traitement
return app
test
Lors de la définition de colonnes indépendantes (colonnes qui ne sont pas ForeignKey) dans la table intermédiaire de plusieurs: plusieurs, il est préférable d'utiliser ʻassociation_proxy que d'utiliser
relation`.
Document officiel pour association_proxy, avec exemple d'implémentation
Document officiel C'est comme Capistrano ou Deployer Article explicatif 1 Article explicatif 2
Non, FastAPI N'est-ce pas bon?
Recommended Posts