Flask で静的フォルダを作成する

Salman Mehmood 2022年7月12日
Flask で静的フォルダを作成する

この説明では、静的ディレクトリ内で静的アセットまたは静的ファイルを使用する方法を学習します。また、カスタム CSS ファイルを Flask にインポートする方法についても学習します。

Flask で静的フォルダを作成する

Flask アプリでは、画像を表示してカスタム CSS クラスにロードし、カスタム JavaScript を使用するという奇妙な方法があります。それでは、先に進んで始めましょう。

ゼロから始めているので、まったく新しいプロジェクトを作成します。Flask からいくつかのクラスをインポートし、モジュールを小文字で記述してから、アプリオブジェクトを作成します。

from flask import Flask, render_template

app = Flask(__name__)

index() と呼ばれる基本的なホームページ関数を作成します。個々のデコレータの 2つのルーツを'/home''/'として設定します。

2つのルートを追加する目的は、1つの関数で複数の route() を使用できることを示すことです。つまり、これらの異なるルートの両方がこの関数にアクセスできます。

return キーワードを使用して render_template() を返し、home.html ファイルを渡します。

@app.route("/home")
@app.route("/")
def index():
    return render_template("home.html")

アプリを実行するには、以下のコードを使用する必要があります。

run() メソッドは、Flask アプリの実行に役立ちます。デバッグを確認したいので、debugTrue に等しいものを渡す必要がありますが、サイトを本番レベルに持ってくるときに False と書くことでオフにできます。

if __name__ == "__main__":
    app.run(debug=True)

次に、すべての HTML ファイルを配置するテンプレートフォルダーを設定する必要があります。そのために、新しいフォルダを作成し、それを templates と呼びます。次に、static と呼ばれる別の新しいフォルダを作成する必要があります。

これで、特定のファイルをどこに配置するかがすでにわかる場合があります。templates フォルダー内に移動し、base.html という名前の新しいファイルを作成してから、home.html という名前の新しいファイルを作成します。

base.html ファイル内に非常に基本的な HTML コードを記述し、head にブロックタイトルを設定し、body タグ内に別のブロックコンテンツを追加します。

Flask アプリケーションは、すべての static ファイルのデフォルトを設定します。これは static というフォルダーに保存されます。つまり、このフォルダーを静的にする必要があります。ここで、必要な特定のファイル名を参照します。 {{ url_for('static',filename='style.css') }}href 属性に渡し、二重引用符で囲みます。

このように、link タグの Python コードを使用して、static フォルダーの URL を取得します。これにより、URL が提供され、正確なファイル名が指定されます。

<html>
  <head>
    <title>{% block title %}{% endblock  %}</title>
    <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='style.css') }}">
  </head>
  <body>
    {% block content %}{% endblock %}
  </body>
</html>

これで、base テンプレートができました。home.html ファイル内の {% extends 'base.html' %} jinja コードを使用してこの base テンプレートを拡張し、いくつかのブロックを使用して base.html 要素にアクセスしてみましょう。

{% extends 'base.html' %}
{% block title %}
    Home Page
{% endblock  %}
{% block content %}
    <h1> Home Page</h1>
{% endblock  %}

次に、static ディレクトリ内に static ファイルを作成する方法と、カスタム CSS をインポートする方法について説明します。static ディレクトリ内に新しい CSS ファイルを作成し、それを style.css と呼ぶ必要があります。あなたがそれを何と呼ぶか​​は問題ではありません。

拡張子の代わりにファイル名を変更できますが、名前を覚えておいてください。シンプルにするために、style.css ファイル内に基本的なスタイルを記述します。

CSS の body セレクターを設定し、color プロパティを使用してから、crimson の色の値を渡します。

body {color: crimson;}

そして、これで完了です。これで、このアプリケーションを実行できます。

from flask import Flask, render_template

app = Flask(__name__)


@app.route("/home")
@app.route("/")
def index():
    return render_template("home.html")


if __name__ == "__main__":
    app.run(debug=True)

次に、Web ブラウザーを開き、見出しのあるホームページに移動します。

Flask の静的フォルダの出力

著者: Salman Mehmood
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn