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

Flaskのアプリ設定ファイル(config.py)の作り方!初心者でもわかる環境設定の基本

Flaskのアプリ設定(config.py)の作り方!環境設定ファイルの基本を学ぼう
Flaskのアプリ設定(config.py)の作り方!環境設定ファイルの基本を学ぼう

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

生徒

「Flaskでアプリの設定って、どこに書くんですか?」

先生

「Flaskでは、アプリの設定をconfig.pyというファイルにまとめて管理するのが一般的です。」

生徒

「なんでそんなファイルを作る必要があるんですか?」

先生

「いい質問ですね。設定をまとめることで、アプリが大きくなったときでも見やすく管理しやすくなるからですよ。では、一緒に基本から学んでいきましょう!」

1. Flaskのアプリ設定ってなに?

1. Flaskのアプリ設定ってなに?
1. Flaskのアプリ設定ってなに?

Flask(フラスク)は、Python(パイソン)で作られたWebアプリケーションフレームワークです。Webアプリケーションとは、ブラウザからアクセスして動く仕組みのアプリのことです。

Flaskでアプリ開発をするときは、「動かし方のルール」や「環境ごとの切り替え」を決めるために、いくつかの設定(config)が必要になります。たとえば、開発中だけエラーを詳しく表示するか、セッションを守るための秘密のキーは何か、アップロードした画像やファイルをどこに保存するか、といった内容です。

これらをコードのあちこちに書いてしまうと、後から探しにくくなり、設定ミスも起きやすくなります。そこで、設定だけをまとめて書く専用ファイルとしてよく使われるのがconfig.pyです。設定を一か所に集めておくと、Flaskアプリの動作が整理され、環境設定の見通しも良くなります。

初心者向け:設定を「メモ帳」みたいにまとめるイメージ

まずは「設定は変数として持つだけ」と覚えると楽です。たとえば次のように、DEBUGSECRET_KEYを用意しておくと、アプリ側から参照できる“設定の一覧”になります。


# config.py(設定だけを書いておくファイル)
class Config:
    DEBUG = True
    SECRET_KEY = 'mysecretkey'

DEBUGは「開発中は詳しいエラーを表示するかどうか」のスイッチです。SECRET_KEYは、ログイン状態(セッション)やフォーム送信などを安全に扱うための大事な値で、アプリのセキュリティに関わります。最初は「設定をまとめておくと管理しやすい」と理解できれば十分です。

2. config.pyを作ってみよう

2. config.pyを作ってみよう
2. config.pyを作ってみよう

ここからは実際に、Flaskの設定ファイルであるconfig.pyを作ってみましょう。やることはシンプルで、「アプリで使う設定を先にまとめて書いておくファイル」を1つ用意するだけです。

まず、プロジェクト(フォルダ)の中にconfig.pyという名前で新しいファイルを作成します。ここに、Flaskの環境設定をPythonの変数として書いていきます。初心者の方は、最初は“設定メモ”を作る感覚でOKです。

まずはこの2つだけ覚えよう


# config.py(Flaskアプリの設定をまとめる)
class Config:
    DEBUG = True
    SECRET_KEY = 'mysecretkey'

DEBUGは、開発中にエラー内容を詳しく表示するための設定です。Trueにしておくと原因調査がしやすくなります。SECRET_KEYは、ログイン状態(セッション)やフォーム送信などを安全に扱うために使われる「秘密のキー」で、Flaskのセキュリティに関わる大事な値です。

なお、SECRET_KEYは「人に知られると困る値」なので、サンプルでは分かりやすく固定の文字列にしていますが、実際の運用では推測されにくいものにします。まずはconfig.pyに設定を集める流れを覚えることが第一歩です。

3. Flaskアプリにconfig.pyを読み込ませる

3. Flaskアプリにconfig.pyを読み込ませる
3. Flaskアプリにconfig.pyを読み込ませる

config.pyを作ったら、次は「Flaskアプリ側でその設定を使えるようにする」作業です。といっても難しくはなく、app.pyなどのアプリ本体のファイルで、設定クラスを読み込んでFlaskに渡すだけです。

ポイントは2つです。①config.pyからConfigをインポートすること、②Flaskのappに対して「この設定を使ってね」と登録すること。この2ステップができれば、アプリ全体で同じ設定を参照できるようになります。

最小サンプル:読み込みはこの形を覚えればOK


from flask import Flask
from config import Config  # config.py から設定クラスを読み込む

app = Flask(__name__)
app.config.from_object(Config)  # アプリに設定を登録する

from config import Configは「config.pyに書いたConfigを持ってくる」という意味です。次のapp.config.from_object(Config)で、FlaskがConfigの中身(DEBUGやSECRET_KEYなど)を設定として扱えるようになります。

読み込みができているか不安なときは、設定値を1つだけ確認してみるのも手です。たとえば、app.configに値が入っていれば、ちゃんと読み込めています(確認のための一時的なチェックとして考えてください)。


print(app.config.get("DEBUG"))

もしTrueが出れば、config.pyの設定がFlaskアプリに反映されています。逆にNoneになる場合は、ファイル名やクラス名、インポートの書き方が合っているかを見直すと解決しやすいです。

4. config.pyを使うメリットって?

4. config.pyを使うメリットって?
4. config.pyを使うメリットって?

ここで「なんでconfig.pyをわざわざ作るの?」と疑問に思うかもしれません。

  • 設定を一か所にまとめることで、どこに何があるか分かりやすくなる
  • 他の人と一緒に開発するときも、共通の設定ファイルを使うことでミスが減る
  • 環境によって設定を変えたいときも、ファイルを分けて対応できる

例えば、「開発環境」と「本番環境」で設定を分けたいときにも役立ちます。実際にそういった用途で使われることが多いです。

5. もっと設定項目を追加してみよう

5. もっと設定項目を追加してみよう
5. もっと設定項目を追加してみよう

Flaskでは、他にもさまざまな設定項目を追加できます。例えば、テンプレートやファイルのアップロード先のパス、セッションの設定なども可能です。


class Config:
    DEBUG = True
    SECRET_KEY = 'mysecretkey'
    UPLOAD_FOLDER = 'uploads/'
    SESSION_COOKIE_NAME = 'my_flask_app'

UPLOAD_FOLDERは、アップロードされたファイルを保存するフォルダの場所です。SESSION_COOKIE_NAMEは、ログイン状態などのセッション情報を記録するためのクッキーの名前です。

6. 初心者がつまずきやすいポイント

6. 初心者がつまずきやすいポイント
6. 初心者がつまずきやすいポイント

プログラミング初心者の方がconfig.pyを使うときに、よくあるミスは以下のとおりです。

  • ファイル名がconfig.pyでない(たとえばConfig.pyなど大文字にしてしまう)
  • from config import Configのスペルミス
  • app.config.from_object()を忘れている

PythonやFlaskは、大文字と小文字を区別します。そのためConfigconfigの綴りを間違えないように注意しましょう。

7. Flaskの基本的な構成とconfig.pyの位置

7. Flaskの基本的な構成とconfig.pyの位置
7. Flaskの基本的な構成とconfig.pyの位置

Flaskのアプリを作るときは、以下のようなフォルダ構成にすると整理しやすいです。


myapp/
├── app.py
├── config.py
├── templates/
└── static/

このようにapp.pyconfig.pyは同じ階層に置くのが一般的です。こうすることで、configを簡単にインポートできます。

まとめ

まとめ
まとめ

Flaskでアプリケーションを作成するとき、設定情報をどのように整理するかはアプリ全体の運用性や拡張性に大きく関わってきます。今回の記事では、Flaskの設定情報をひとつにまとめるための重要な仕組みであるconfig.pyの役割や書き方、アプリへの読み込み方法まで詳しく学んできました。Flaskはシンプルな構造で扱いやすいフレームワークですが、アプリが成長していくにつれて、設定項目が散らばってしまうと管理が難しくなります。そこでconfig.pyを活用することで、設定を明確にし、コードの読みやすさと保守性を向上させられます。

記事で紹介した基本の設定項目であるDEBUGSECRET_KEYは、Flaskを使った開発において最初に理解しておきたい重要な部分です。DEBUG = Trueを指定するとエラー内容がわかりやすく表示され、開発効率が高まります。また、SECRET_KEYはセキュリティ上必須の設定であり、不正アクセスからフォームデータやセッション情報を守るためにも欠かせません。さらに、アップロードフォルダやクッキーの設定といった追加の項目をconfig.pyにまとめることで、アプリが複雑になっても一目で設定を確認できるようになります。

Flaskアプリ側でapp.config.from_object(Config)を使って設定を読み込む方法も、理解しておきたい大切なポイントです。この仕組みによって、Flaskはconfig.py内の設定クラスを自動的に読み込み、アプリ内で利用できるようになります。初心者がつまずきやすいスペルミスやファイル名の大小文字の違いも、今回学んだ注意点を踏まえておくと防ぎやすくなるでしょう。

さらに、Flaskを使ったアプリのフォルダ構造を整えることも、アプリ開発における重要な要素です。app.pyconfig.pyを同じ階層に置くことで設定のインポートがスムーズになり、テンプレートフォルダや静的ファイルの配置にも一貫性が生まれます。こうした基本の構成は、規模の大きなアプリを作る際にも役に立つ一般的なレイアウトです。

Flaskは自由度が高いぶん、開発者自身がルールを決めて整理しながら進める必要があります。その中でconfig.pyのような設定ファイルを使う設計は非常に重要で、今後アプリを改良したり機能を拡張したりするときの強力な基盤になります。今回の内容を踏まえて、次のステップとして「開発用」「本番用」「テスト用」など環境ごとに異なる設定クラスを作ることにも挑戦すると、より実践的なFlask開発ができるようになるでしょう。

■ config.pyのサンプルコード(応用バージョン)


class BaseConfig:
    SECRET_KEY = 'base_secret_key'
    SESSION_COOKIE_NAME = 'my_flask_app'
    UPLOAD_FOLDER = 'uploads/'

class DevelopmentConfig(BaseConfig):
    DEBUG = True
    ENV = 'development'

class ProductionConfig(BaseConfig):
    DEBUG = False
    ENV = 'production'

# app.pyでの読み込み例
from flask import Flask
from config import DevelopmentConfig

app = Flask(__name__)
app.config.from_object(DevelopmentConfig)

このように、設定をクラスごとに分けて管理することで、開発環境ではデバッグモードを有効にし、本番環境では安全な設定を適用するなど、柔軟で安全なアプリ運用が実現できます。Flaskの設定管理は、アプリの品質に直結する大切な工程であり、初心者が早い段階で身に付けておくべきスキルと言えます。

先生と生徒の振り返り会話

生徒:「config.pyを使うと設定がこんなに整理できるんだと驚きました!」

先生:「そうですね。Flaskは自由度が高いぶん、自分で整理して設計する力が必要なんです。」

生徒:「DEBUGやSECRET_KEYの意味もようやく理解できました。特にSECRET_KEYの大切さは知りませんでした!」

先生:「セキュリティに関わる部分なので、本番環境では必ず安全な値にしておくことが大事ですね。」

生徒:「環境ごとにクラスを分ける方法も便利ですね!開発環境と本番環境で切り替えられるのは助かります。」

先生:「その通り。プロの現場でもよく使われる手法なので、今のうちに慣れておくと良いですよ。」

生徒:「次は、設定にデータベースのURLやメールサーバーの設定も追加してみたいです!」

先生:「とても良いですね。config.pyを使えばそれらも簡単に管理できるようになります。」

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

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

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

Flaskのconfig.pyファイルとは何のために使うのですか?

Flaskのconfig.pyファイルは、アプリケーションの設定情報を一箇所にまとめて管理するためのファイルです。デバッグモードの有効化やセキュリティキー、ファイルの保存先などを指定できます。これにより、Flaskアプリの構成が整理され、保守やチーム開発がしやすくなります。
カテゴリの一覧へ
新着記事
New1
Django
Djangoのプロジェクトとアプリの違いを徹底解説!初心者でも迷わない構造の考え方
New2
Flask
FlaskでRQ(Redis Queue)を使って非同期タスク管理を行う方法|初心者向けやさしい解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Django
DjangoとFlaskの違いを完全比較!初心者でもわかるPythonフレームワーク入門
No.3
Java&Spring記事人気No3
Flask
Flaskアプリの環境変数設定方法!安全で柔軟な構成を実現しよう
No.4
Java&Spring記事人気No4
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.5
Java&Spring記事人気No5
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.6
Java&Spring記事人気No6
Python
Pythonでリストをコピーする方法!copy()・スライス・list()の使い方を比較
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Python
Pythonで空白や不要な文字を削除する方法!strip(), rstrip(), lstrip() の使い方を初心者向けに解説