技術共有

[Flask Notes] 完全な Flask プログラム

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

前にも述べたように、Flask は軽量な Web 開発フレームワークです。なぜ軽量と言われているのでしょうか。最も単純な flask フレームワークを見てみましょう。

Flask をインストールする

Flask フレームワークについて説明する前に、まず flask モジュールをインストールする必要があります。Python を学習したことがある人なら、flask モジュールのインストールが実際にはコマンドを使用するだけであることを知っているはずです。

pip install flask
  • 1

ここで言及しておきたいのは、モジュールのインストール時にダウンロードに失敗した場合、その主な原因は Python がデフォルトで公式のダウンロード モジュール アドレスを使用しており、中国でアクセスするとこのアドレスが不安定になる場合があるということです。ダウンロードには清華社のダウンロード ソースを使用することをお勧めします。これにより、はるかに高速になり、エラーやタイムアウトが発生しません。

https://pypi.tuna.tsinghua.edu.cn/simple
  • 1

使用方法も非常に簡単で、1 つ目は を追加する方法です。-i次のようにパラメータと URL が続き、モジュールはこのアドレスからダウンロードされます。

pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 1

上記の方法は一時的なダウンロードにのみ使用でき、ダウンロード ソースを永続的に変更することはできません。デフォルトのダウンロード ソースを変更する別の方法を次に示します。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  • 1

変更後は通過可能ですpip config list変更が成功したか確認します。変更が成功した場合は以下のように表示されます。

(.venv) ❯❯ pip config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
  • 1
  • 2

最小限で完全な Flask プログラム

Flask が正常にインストールされたら、例を見てみましょう。これは完全な flask プログラムであり、flask の実行に必要な小さなユニットです。次のコードを my_flask.py などの py ファイルに保存します。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上記のコードに示されているように、たった 10 行のコードで flask を実行できるため、flask は軽量の Web フレームワークです。上記のコードは短いですが、包括的であり、アプリケーション インスタンス、ルーティング、およびビュー関数が最も単純な Flask プログラムを構成します。

アプリケーション

アプリケーション インスタンスは実際には Flask のアプリケーション オブジェクトであり、ガールフレンドではなく、リクエスト処理、ルート配布、ビュー関数呼び出しを含む Web アプリケーションのコア、つまりその文です。app = Flask(__name__)Flask サンプルのソース コードを見ると、起動パラメータの実行、ルーティング ルール、リクエストの送受信方法の定義など、多くの内容が含まれていることがわかりますが、これらについては説明しません。詳しくはこちら。

ルーティング

ルーティングは、URL と関数間の対応を処理するために使用されます。ここでは、理解を容易にするために、Web の動作原理全体について説明する必要があります。まず、下の図を見てください。
ここに画像の説明を挿入します
Web ブラウザがリクエストを開始し、Web サーバーがそのリクエストを受信し、Flask アプリケーションがリクエストされた URL を受信した後、対応する処理関数を見つけます。これがルーティング全体の仕組みです。
上記に対応するプログラムがその関数です

@app.route('/')
def index():
    return "Hello, World!"
  • 1
  • 2
  • 3

Pythonを比較的深く学べば上記のコードが分かるようになります@app.route('/')はビュー関数を登録するために使用されるデコレータであり、括弧内の内容は使用されるパスです。'/'これはルートパスを意味します。http://127.0.0.1:5000;に変更された場合‘/login/’これは、ログイン パスを使用することを意味します。http://127.0.0.1:5000/login/; のように書かれた場合'/user/<name>'動的可変ルーティング、つまり、<name>など、送信内容に応じて動的に変化します。http://127.0.0.1:5000/user/jay、このジェイはブラウザによってルートにアタッチされる必要があります。
これは、使いやすさのために Flask で簡略化されています。実際、ルートを定義する従来の方法は現在では一般的に使用されていないため、ここでは詳しく説明しません。
ルーティングに関してここで言及しなければならないもう 1 つの点があります。つまり、Flask の動的変数ルーティングは、上記のような string、int、float、および path タイプのみをサポートします。<name>文字列タイプが使用されます。このタイプは、スラッシュ (/) を除く任意の文字シーケンスに一致するように、デフォルトで記述する必要はありません。他の型については、それらを識別する必要がある場合は、次のように型を記述する必要があります。'/path/<path:my_path>'

ビュー機能

View関数は受信リクエストを処理する関数であり、ルーティングで定義された関数です。

def index():
    return "Hello, World!"
  • 1
  • 2

上記の機能はいわゆるビュー機能です。受信リクエストを処理し、応答を返すために使用されます。

応答

戻り応答については上記で説明しましたが、応答とは何ですか?応答はビュー関数で返される値であり、文字列または複雑な形式にすることができます。また、Flask が提供する render_template() 関数を使用して HTML を直接返すこともできます。 redirect() 関数を使用してルートをリダイレクトします。

起動する

Flask プログラムの 5 つの内部部分は上に要約されていますが、Flask を実行するためのエントリ ポイントがまだ 1 つ少なく、それがこのコードの最後の 2 行です。

if __name__ == '__main__':
    app.run(debug=True)
  • 1
  • 2

最初の行if __name__ == '__main__':, Pythonを勉強したことのある人なら誰でも、これがPythonの入り口メソッドであること、つまり現在のファイルまたはモジュールがメインプログラムとして直接実行されることを知っています。
二行目app.run(debug=True)上記で作成した Flask オブジェクトを呼び出して run() 関数を実行して Flask を実行し、デバッグを run() 関数にパラメータとして渡して、Flask モードで開始されたことを Flask に知らせます。リローダーとデバッガーが自動的にロードされます。
次に、コマンドラインに移動し、my_flask.py ファイルのディレクトリを入力し、コマンドラインに次のように入力します。python my_flask.py以下の図に示すように、プログラムを開始できます。
ここに画像の説明を挿入します
ブラウザを開いて入力しますhttp://127.0.0.1:5000以下に示すように、Hello, World! が表示されます。
ここに画像の説明を挿入します

この時点で、Flask プログラム全体が持つべき概念の説明は終わりました。もちろん、これらは Flask に基づいて Web アプリケーションを完全に開発したい場合には、まだ学ぶべきことがたくさんあります。テンプレートやデータベース、フロントエンド技術などについて、筆者も学びながら書いており、よりしっかりと覚えられるよう、ファインマン学習法も参考にしています。記載漏れや間違いがあればご指摘ください。それを指摘してください。