カテゴリ: Flask 更新日: 2025/12/04

FlaskでCSS・JavaScript・画像を使う方法を完全ガイド!初心者向け静的ファイルの管理方法

Flaskで静的ファイル(CSS・JavaScript・画像)を管理する方法まとめ
Flaskで静的ファイル(CSS・JavaScript・画像)を管理する方法まとめ

先生と生徒の会話形式で理解しよう

生徒

「FlaskでWebサイトを作ってみたいんですが、背景の色を変えたり、画像を表示したり、ボタンを押したときに動きをつけたりしたいです!」

先生

「それには、CSS(シーエスエス)やJavaScript(ジャバスクリプト)、画像などの“静的ファイル”を使いますよ。」

生徒

「静的ファイルって何ですか?どうやって使うんですか?」

先生

「とても良い質問ですね。これからFlask(フラスク)で静的ファイルを使う方法を、初心者向けにゆっくり解説していきます!」

1. Flaskとは?簡単におさらい

1. Flaskとは?簡単におさらい
1. Flaskとは?簡単におさらい

Flask(フラスク)は、Pythonで作られたとても軽量なWebアプリケーションフレームワークです。HTML(エイチティーエムエル)やCSS、JavaScriptなどを組み合わせて、WebサイトやWebアプリを作るときに使います。

今回のテーマは「静的ファイル」。これはWebページの見た目や動き、画像などを制御するための重要なパーツです。

2. 静的ファイルってなに?

2. 静的ファイルってなに?
2. 静的ファイルってなに?

静的ファイル(せいてきファイル)とは、次のようなファイルのことを言います。

  • CSSファイル:文字の色や背景色、レイアウトなど見た目を整えるファイル
  • JavaScriptファイル:ボタンを押したら動く、画面が変わるなどの動きをつけるファイル
  • 画像ファイル:JPEG、PNG、GIFなどの画像

「静的」と言われるのは、これらのファイルがFlaskのプログラムとは別に、あらかじめ準備された状態で使われるからです。

3. Flaskで静的ファイルを使うには?

3. Flaskで静的ファイルを使うには?
3. Flaskで静的ファイルを使うには?

Flaskには、静的ファイル専用のフォルダ(フォルダ=パソコンの中の「入れ物」)を作って、そこにCSSやJavaScript、画像を保存するルールがあります。

そのフォルダの名前は「static」といいます。


project/
├── app.py
├── static/
│   ├── style.css
│   ├── script.js
│   └── image.png
└── templates/
    └── index.html
```

上のように「static」フォルダの中に必要なファイルを入れておきます。

```

4. HTMLで静的ファイルを読み込む方法

4. HTMLで静的ファイルを読み込む方法
4. HTMLで静的ファイルを読み込む方法

FlaskでHTMLを書くときは、「templates」フォルダを使います。そこで、<link>タグや<script>タグを使ってCSSやJavaScriptを読み込みます。

読み込むときは、url_for(ユアールエル・フォー)というFlaskの特別な命令を使います。


<!DOCTYPE html>
<html>
<head>
    <title>Flaskで静的ファイル</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
    <script src="{{ url_for('static', filename='script.js') }}"></script>

</head>
<body>
    <h1>ようこそ!</h1>
    <img src="{{ url_for('static', filename='image.png') }}" alt="サンプル画像">
</body>
</html>

5. PythonコードでFlaskを起動しよう

5. PythonコードでFlaskを起動しよう
5. PythonコードでFlaskを起動しよう

Flaskアプリを作るには、Pythonのプログラムを書いて動かす必要があります。とても簡単な例を見てみましょう。


from flask import Flask, render_template

app = Flask(__name__)

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

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

6. CSSファイルの書き方(style.css)

6. CSSファイルの書き方(style.css)
6. CSSファイルの書き方(style.css)

CSSファイルには、見た目を整えるためのルールを書きます。たとえば、背景の色を変えたり、文字を大きくしたりします。


body {
    background-color: #f0f8ff;
    font-family: sans-serif;
}
h1 {
    color: #3333cc;
}

7. JavaScriptファイルの書き方(script.js)

7. JavaScriptファイルの書き方(script.js)
7. JavaScriptファイルの書き方(script.js)

JavaScriptは、Webページに「動き」を加えるスクリプトです。例えば、ボタンをクリックしたらアラートを出すようなコードです。


window.onload = function() {
    alert("ページが読み込まれました!");
};

8. 画像を表示する方法

8. 画像を表示する方法
8. 画像を表示する方法

画像を表示するときも、url_forを使います。Flaskでは、staticフォルダの中に画像を置いて、それをHTMLから呼び出します。


<img src="{{ url_for('static', filename='image.png') }}" alt="サンプル画像">

9. よくあるエラーと対処法

9. よくあるエラーと対処法
9. よくあるエラーと対処法
  • ファイルが表示されない:staticフォルダの名前を間違えていないか確認しましょう。
  • CSSが適用されない:url_forで指定するファイル名にスペルミスがないかチェックしましょう。
  • 画像が表示されない:画像のファイル名や拡張子(.png、.jpgなど)を確認しましょう。

10. 実行結果のイメージ

10. 実行結果のイメージ
10. 実行結果のイメージ

実行すると、背景が水色になり、「ようこそ!」の文字が濃い青色で表示され、画像が画面に表示されます。ページを開いたときにアラートも表示されます。


(ようこそ!の見出しが表示され、背景色が淡い水色、画像が表示されます)

まとめ

まとめ
まとめ

Flask(フラスク)でCSSやJavaScriptや画像といった静的ファイルを扱うためには、staticフォルダの構成やtemplatesフォルダでのHTML記述、そしてurl_forを正しく使うことがとても重要になります。とくに、初心者がつまずきやすいポイントとして、フォルダ名の間違いや、ファイル名の表記ゆれ、読み込みタグの指定ミスなどがあります。この記事で学んだように、Flaskの基本フォルダ構造を守り、HTML側では<link>タグや<script>タグ、そして画像用の<img>タグを組み合わせていくことで、見た目も動きも思い通りにデザインできます。 Flaskはとてもシンプルでありながら、CSSファイルで背景色やレイアウトを調整したり、JavaScriptファイルで動きを加えたり、画像を鮮やかに表示したりと、多くの工夫ができるのが魅力です。初心者でも扱いやすく、Webページを自分の思い通りに表現する第一歩として最適なフレームワークと言えます。特に、初心者にとって学びやすい理由は、ファイルの配置ルールが明確で、どのファイルをどこに置くべきかが明快であることにあります。 また、render_templateを使ってテンプレートを呼び出し、スタイルシートやスクリプトの読み込みを確実に行うことで、FlaskでのWeb制作がよりスムーズになります。画像のパス指定も同じurl_forで統一されているため、一度覚えてしまえば応用がしやすく、複雑なページでも扱いやすくなります。 実際のプロジェクトに挑戦するときは、今回紹介した基本構造を守るだけで、CSSで細かい配色をデザインしたり、JavaScriptでイベント操作を加えたり、テンプレートエンジンで動的ページを生成したりすることが可能です。Flaskを使った開発の基礎として、ファイルの配置・構造、HTMLでの読み込み方法をしっかり覚えておくと、後の学習がとても楽になります。

サンプルプログラム(まとめ用)

今回学んだ内容をふまえて、静的ファイルを扱う最小構成のFlaskプロジェクト例をまとめとして記載します。


from flask import Flask, render_template, url_for

app = Flask(__name__)

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

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

<!DOCTYPE html>
<html>
<head>
    <title>まとめページ</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='summary.css') }}">
    <script src="{{ url_for('static', filename='summary.js') }}"></script>
</head>
<body>
    <h1 class="mark fw-bold">静的ファイルのまとめサンプル</h1>
    <img src="{{ url_for('static', filename='sample.png') }}" alt="サンプル画像">
</body>
</html>

body {
    background-color: #eef7ff;
    font-family: "Hiragino Sans", sans-serif;
}
h1 {
    color: #2244aa;
    padding: 10px;
}

window.onload = function() {
    console.log("まとめページの静的ファイルが正しく読み込まれました");
};
先生と生徒の振り返り会話

生徒「FlaskでCSSやJavaScriptを使えるようになって、ページの見た目や動きが一気によくなりました!」

先生「そうですね。staticフォルダの使い方とurl_forの指定を覚えれば、かなり自由に表現できますよ。」

生徒「画像のパスも同じ方法で呼び出せるのが便利ですね!」

先生「ええ、統一されているので覚えやすいでしょう。今回の学びを活かせば、もっと複雑なページも作れますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

FlaskでCSSやJavaScriptを使ってWebページのデザインを変更するにはどうすればいいですか?

Flaskでは「static」というフォルダを作成し、その中にCSSやJavaScriptファイルを入れることで、Webページの背景色やレイアウト、動きなどを設定できます。
カテゴリの一覧へ
新着記事
New1
Flask
Flaskでデータベースエラーを処理する方法!初心者にもわかる例外の使い方
New2
Flask
FlaskでリダイレクトやURL生成を行う方法!便利な関数の使い方を解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Flask
Flask‑Mailの使い方!アプリからメールを送信する基本方法を解説
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Django
DjangoとFlaskの違いを完全比較!初心者でもわかるPythonフレームワーク入門
No.3
Java&Spring記事人気No3
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.6
Java&Spring記事人気No6
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説