今日のPython 第0回「FlaskでWebアプリを作る」

「礼」の~IT人財を目指して~

作成日:2025年04月13日

更新日:———————

はじめに

Webの仕組み

Webとは

  • HTTPという通信の約束に従って
  • URLで指定する場所(サーバー)との間で
  • ハイパーテキスト(情報)をやり取りするための仕組み。

「URLで指定したサーバーと情報のやり取りを行う技術」です。

Webアプリとは

Webブラウザ上で動作するアプリケーションソフトウェア。
Webの仕組みを活用して開発されています。
WEBアプリケーションを開発するにはWEBプログラムを利用するためフレームワークを利用します。
他のWEBアプリケーション機能が共有されているものを利用するために「WEB API」を利用することもあります。

フレームワークとは

ソフトウェアを開発するうえでの典型的・定型的な処理やデータ構造などをまとめた、枠組みやテンプレートとなるもの。

システム開発を効率化できるように、よく使う基本的な機能をまとめて提供してくれます。

これを使用せず、自分でプログラミングを全て行う場合、開発に時間がかかってしまいます。

そのため最近では、フレームワークを使って開発を行うのがスタンダードとなっています。

Pythonで使えるフレームワーク

Pythonで利用できるフレームワークには、3つのタイプがあります。

  • フルスタックフレームワーク(Full-Stack Framework)
    • Web開発に必要なものがまとまっている
  • マイクロフレームワーク(Microframework)
    • 必要最低限の機能がまとめられている
  • 非同期フレームワーク(Asynchronous Framework)
    • 同時に複数接続処理が可能なフレームワーク

Flask(フラスク)とは

PythonでWebアプリケーションを作成するためのフレームワークです。

前述のマイクロフレームワークに分類され、フルスタックフレームワークから面倒な部分を省いて軽量化させたようなフレームワークです。

「Werkzeug WSGIツールキット」と「Jinja2テンプレートエンジン」を基に作られています。(Werkzeug=ヴェルクツォイク:ドイツ語でツールという意味)

URLのルーティング、ページのレンダリングを提供

ルーティングとは

適切なネットワークへデータを 転送する処理を、ルーティング(経路制御)と言います。

Webアプリケーションにおいて、ルーティングは、URLとアプリケーションの処理をマッピングするための仕組みです。

ルーティングを行うことで、Webアプリケーションは、HTTPリクエストを受け取り、処理を実行し、HTTPレスポンスを返すことができます。

ルーティングを行うには、Webアプリケーションフレームワークを使用することが一般的です。

フレームワークによって提供されるルーティング機能を使用することで、簡単にURLと処理のマッピングを設定することができます。

flaskアプリの基本構造

PythonのFlaskフレームワークを使用した基本的なルーティングの例を示します。

■コード■

#①モジュールのインポート
from flask import Flask

#②Webアプリ作成
app = Flask(__name__)

#③エンドポイント設定(ルーティング)
@app.route('/')
def hello():
return 'Hello World!'

#④Webアプリ起動~~~~
if __name__ == '__main__':
app.run(debug=True)

■解説等■

  • ①アプリ作成に必要な機能の詰まったコードファイルを使えるようにします。
  • ②必要な機能が詰まった「アプリの核」を用意します。
  • ③ブラウザからアクセスするURLと、それに対応した処理をここに書きます。
  • ④ファイルが実行された時にアプリが立ち上がる(ブラウザで表示できる)ようにします。
FlaskでWebアプリを作る時は、③の部分を作っていきます。
②④はflaskの操作。基本的にコードを変更する必要はありません。

上記の例では、/というURLにアクセスした場合に、hello_world()という関数が呼び出され、Hello, World!というテキストを返します。@app.route()デコレータを使用して、URLパスと関数をマッピングしています。

@app.route()とは

app.routeは、Flaskアプリケーションにルート(URLのパス)を定義するためのデコレータです。

デコレーターは、Pythonの関数やメソッドの前後に追加の機能を付加するための機能です。

app.routeの基本的な使い方

■コード■

@app.route([URLのパス])
    def [関数名]():
    #URLにアクセスした際に実行する処理

■解説等■

値を渡して動的にテンプレートの表示を変更する

■コード■

@app.route('/index')
    name = 'Taro'
    age = 12
    return render_template('index.html', name=name, age = age) # nameとageを変数としてテンプレートに渡す
if __name__ == '__main__':
app.run()

■解説等■

■コード■

<!-- {{ }} で渡した変数を囲うとその変数の中身を表示することができる。 -->
<h2>My name is {{ name }} age is {{ age }}</h2>

■解説等■

Web APIとは

Web Application Programming Interfaceの略で、Webブラウザ上で利用できるAPIです。

異なるアプリケーション間でデータやプログラムの機能を連携させる仕組みで、HTTP/HTTPSプロトコルを用いて通信します。

APIは、

アプリケーション(Application)を
プログラミング(Programming)を使って
繋ぐ(Interface)
といった意味で、ソフトウェアやアプリケーション同士で機能を共有するための仕組みのことです。

『自分が作ったWebサービスに、他の人が作った便利な機能を借りてくる』というイメージです。

まとめ

ひな形

■コード■■解説等■

コメント

タイトルとURLをコピーしました