ホームページ >バックエンド開発 >Python チュートリアル >Flask アプリケーションで静的ファイルを効果的に提供するにはどうすればよいですか?
Flask で HTML、CSS、JavaScript などの静的ファイルを提供することは、Web アプリケーションを構築するために不可欠です。ただし、このトピックに関する特定のドキュメントを見つけるのは混乱する可能性があります。
デフォルトでは、Flask は、Flask アプリを定義する Python モジュールの隣にある「static」という名前のサブディレクトリから静的ファイルを自動的に提供します。これらのファイルにアクセスするには、url_for ヘルパーを使用して、「static」プレフィックスが付いた URL を生成します。
url_for('static', filename='css/main.css')
たとえば、URL '/static/css/main.css' へのリクエストは、 「static/css」ディレクトリにあるファイル「main.css」の内容。この方法は、静的ファイル専用のディレクトリがある場合に適しています。
別のディレクトリからファイルを提供する必要がある場合は、send_from_directory 関数を使用できます。
from flask import send_from_directory @app.route('/files/<path:path>') def get_file(path): return send_from_directory('files', path)
これにより、ユーザーが URL「/files/
別のオプションは、メモリ内のファイルを送信することです。ファイルシステムに書き込まずにファイルを生成する場合は、BytesIO オブジェクトを send_file 関数に渡して提供できます。
from io import BytesIO from flask import send_file @app.route('/download/file') def download_file(): # Generate the file in memory content = b'...' filename = 'report.pdf' # Send the file output = BytesIO(content) return send_file(output, mimetype='application/pdf', as_attachment=True, attachment_filename=filename)
パス セキュリティを処理し、公開する予定のファイルのみを提供することを忘れないでください。これらの方法を使用する場合。
以上がFlask アプリケーションで静的ファイルを効果的に提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。