FlaskでTodoリストの作成その1~準備とアプリケーションの作成~
2024年10月1日
こんにちは!
今回の記事では、FlaskでTodoリストの作成を行います。Todoリストの作成は全3回の記事でお伝えします。今回は最初の第1回目です!
- FlaskでTodoリストの作成その1~準備とアプリケーションの作成~
- FlaskでTodoリストの作成その2~データベースの設定~
- FlaskでTFlaskでTodoリストの作成その3~チェックと削除機能の追加~
今回のコースで学習すること
今回のコースでは、Todoリストアプリの作成を行います。
以下のようにタスクを追加したり、タスクのチェックができる機能を実装します。
Todoリストアプリの作成を通して、以下の内容の学習を行います。
- ルーティング
- HTTPのGET、POST
- データベースの操作
- テンプレートエンジンjinja2
では、早速始めましょう!
Todoリストアプリ作成の準備
ここでは、Todoリストアプリ作成の準備を行います。
前回の復習も兼ねて、環境の準備からHello Worldを表示してみましょう。
仮想環境の構築
まずは環境の準備を行います。
自身のPCで実施している方は、ディレクトリ(フォルダ)を作成して、そのフォルダに移動します。
mkdir todo-app
cd todo-app
その後、ターミナルで以下のコマンドを実行し、pythonの仮想環境を作成し、有効にしましょう。
python3 -m venv myenv
#Mac、Linux、ブラウザの実行環境の場合
source myenv/bin/activate
#Windowsの場合
myenv\Scripts\activate
仮想環境を有効化すると、コマンドラインのプロンプトが変わり、仮想環境が有効であることが表示されます。
この状態で、Flaskのインストールを行います。
Flaskのインストール
以下のコマンドを実行して、Flaskのインストールを行います。
pip install Flask
app.pyの編集
続いて、app.pyの作成を行います。
まずは、”Hello World!”を表示させましょう。ここからTodoリストへ改修していきます。
# app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(debug=True)
Flaskの起動
最後にFlaskを起動させましょう。
python app.py
Webブラウザでhttp://127.0.0.1:5000にアクセスして、”Hello World!”と表示されたら成功です。
Todoリスト一覧ページの作成
続いて、Todoリストの一覧ページを作成します。
app.pyの編集
まず、app.pyを編集します。
現在、/(URLのルート)にアクセスすると、Hello Worldが表示されます。
これを、HTMLが表示されるようにします。
まず、2行目のimportの部分を以下のように修正します。
# app.py
from flask import Flask, render_template, request, redirect, url_for
これは、Flaskで使う必要なプログラムを読み込む設定です。
それぞれ、以下のような機能があります。
- render_template・・・指定されたHTMLテンプレートをクライアントに返すために使用されます。
- request・・・クライアントから送信されたHTTPリクエストデータにアクセスするために使用されます。
- redirect・・・クライアントを指定したURLにリダイレクトするために使用されます。リダイレクトとは、他のURLへ転送することです。
- url_for・・・指定したエンドポイントに対応するURLを生成するために使用されます。
続いて、@app.route(‘/’)の下の2行を以下のように修正します。
@app.route('/')
def index():
return render_template('index.html')
これは、/(URLのルート)にアクセスするとindex.htmlを返すように設定しています。render_template([html名])は、templatesディレクトリ配下の指定したHTMLを返します。
app.pyの全文は以下のようになります。
# app.py
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
index.htmlの作成
つづいて、index.htmlを作成します。
これは、Webページに表示されるフロントの部分です。
templatesディレクトリを作成して、その配下にindex.htmlを作成します。
index.htmlの中身は以下のように記述します。
<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Flask Todo App</title>
</head>
<body>
<h1>Todo List</h1>
<ul>
<li>task1</li>
<li>task2</li>
</ul>
</body>
</html>
これでindex.htmlの作成は完了です。
確認
最後にFlaskを起動して確認します。
python app.py
Webページにアクセスすると、”Hello World!”から表示が変わり、Todoリストが表示されています。
これは、index.htmlで記述した内容が表示されているだけです。
これからtask1やtask2を登録したり、Todoリストとして動作するようにしていきます。
まとめ
Todoリストの作成の第一回はこれで完了です。続きは以下から!
- FlaskでTodoリストの作成その1~準備とアプリケーションの作成~
- FlaskでTodoリストの作成その2~データベースの設定~
- FlaskでTFlaskでTodoリストの作成その3~チェックと削除機能の追加~
Pythonの基礎から応用まで学べる
Python WebAcademy
Python WebAcademyでは、Pythonの基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。また、ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。
無料で試すインフラの学習はInfraAcademy
おすすめの記事