Servir des fichiers statiques dans Flask Ask and Answer
Servir des fichiers statiques est une exigence courante pour les applications Web. Flask, un framework Web populaire pour Python, propose plusieurs approches pour gérer le contenu statique.
Question :
"J'ai du mal à trouver de la documentation sur la façon dont Flask sert du contenu statique. fichiers. J'ai essayé différentes méthodes, notamment render_template, send_file et url_for, mais aucune ne semble fonctionner. travail."
Réponse :
Flask fournit deux méthodes principales pour servir des fichiers statiques :
-
Configuration avec le serveur Web : Configurez votre serveur Web (par exemple, Nginx, Apache) pour gérer les demandes de fichiers statiques dans le fichier /static répertoire.
-
Utilisation du routage statique : Flask crée automatiquement une route /static/path/filename qui sert les fichiers du dossier statique. Utilisez url_for pour générer des liens vers ces fichiers.
Par exemple :
from flask import url_for
url_for('static', filename='js/analytics.js')
Options supplémentaires :
-
send_from_directory : Fournit un moyen sécurisé de servir des fichiers à partir d'un chemin spécifié par l'utilisateur dans un répertoire.
-
Objet BytesIO : Vous permet de servir le contenu généré en mémoire sans écrire dans le système de fichiers. Transmettez un objet BytesIO à send_file.
Ne pas utiliser :
-
send_file ou send_static_file avec des chemins fournis par l'utilisateur, car ceux-ci pourraient conduire à des attaques par traversée de répertoires. send_from_directory est conçu pour gérer les chemins des utilisateurs en toute sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn