9cubed
ブログ | Tailwind | Vite | Python | Node.js | Linux | PowerShell | その他 | 将棋ウォーズ | 歌の練習
< 前の記事

簡易Webサーバーの作成

Python

[Python]Flask のインストールと動作確認

公開日:2025-12-19
更新日:2025-12-19

1. 概要

Webフレームワークの Flask のインストールと簡単な動作確認を行います。

2. インストール

コマンド
pip install flask

3. コード

コード
from flask import Flask, request, abort

app = Flask(__name__)

@app.route('/')
def index():
    msg = request.args.get('msg')
    if msg is None:
        abort(500)

    return msg

@app.route('/hello')
def hello():
    return 'Hello'

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

実行後、ブラウザで http://localhost:5000/?msg=test にアクセスすると、test と表示されます。
http://localhost:5000/ にアクセスすると、Internal Server Error と表示されます。

また、http://127.0.0.1:5000/hello にアクセスすると、Hello と表示されます。

4. 説明

@app.route() に URL のパターンを指定して、その後ろにリクエストを処理する関数を定義します。

5. URL と関数の関連付けの仕組みについて

デコレーターの仕組みを知らなくても Flask を使うことはできますが、
Python の理解を深めるために、URL と関数の関連付けを再現しました。

コード
class DummyFlask:
    def __init__(self):
        self.func_dict = {}

    def route(self, url):
        def decorator(func):
            self.func_dict[url] = func # [URL] = 関数
            return func
        
        return decorator
    
    def get(self, url):
        self.func_dict[url]()
    
obj = DummyFlask()

@obj.route('/')
def index():
    print('index')

@obj.route('/hello')
def hello():
    print('Hello')

# リクエストの処理
obj.get('/')
obj.get('/hello')

@obj.route('/') で、route() が呼ばれます。
route() では、decorator() と言う関数を定義して返します。
これにより、
@obj.route('/')
が、
@decorator
の形になります。

次に、デコレーター構文により、次の行の関数 index() が、decorator() に渡されます。
そして decorator() では、渡された関数を、URL をキーにして辞書に登録します。

あとは、get() などのメソッドを定義して、辞書から URL に対応した関数を取り出して実行するだけです。
< 前の記事

簡易Webサーバーの作成

YouTube X

新着一覧

  • SCSS のインストールVite
  • Tailwind CSS のプロジェクトの作成Tailwind
  • TypeScriptのプロジェクトの作成Vite
  • Flask のインストールと動作確認Python
  • 簡易Webサーバーの作成Python
  • pipeline で文章の生成Python
  • pipeline で文章の要約Python
  • 音声から文字起こしPython
  • Node.js のインストールNode.js
  • .ps1(PowerShellスクリプト)を実行可能にするPowerShell

アーカイブ

  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲