ホームページ >バックエンド開発 >Python チュートリアル >Python MicroFrameworkであるFlaskを開始します

Python MicroFrameworkであるFlaskを開始します

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-16 10:30:14467ブラウズ

Getting Started with Flask, a Python Microframework

この記事では、巨大なDjangoフレームワークに代わるものを提供する人気のあるPythonミニフレームワークであるFlaskを紹介します。

Flaskのデザイン哲学は軽量で柔軟性があり、開発者がWebアプリケーションをすばやく簡単に作成できるようになりました。この記事では、フラスコ、その主要な機能、単純なAPIの利点、サードパーティの拡張機能をサポートする柔軟性、最も一般的に使用されるフラスコ拡張機能、およびフラスコを使用するかどうかを説明します。

キーポイント

    フラスコの機能とユースケースの概要:この記事では、その軽量で柔軟な機能とさまざまなWebプロジェクトへの適用性に焦点を当てたFlaskを紹介します。 Flaskのシンプルさ、拡張サポート、主要な機能、およびプロトタイピング、Restful API、eコマースアプリケーションなどの実用的なユースケースを調査します。
  1. Djangoとの比較分析:この記事では、FlaskをDjangoと比較し、Flaskのミニフレームワークアプローチを強調しています。これは、複雑な構造のない必要なツールを提供します。
  2. フラスコから始めてください:この記事では、フラスコ開発環境のセットアップ、基本的なアプリケーションの作成と実行、およびルーティング、テンプレート、フォーム、および拡張機能のフラスコ機能の活用に関する段階的なガイドを提供します。

フラスコとは何ですか?

Flaskは、Webアプリケーションを開発するためにPythonで書かれたミニチュアWebフレームワークです。シンプルで軽量な概念に基づいて構築されており、開発者に不必要な複雑さなしにWebアプリケーションを構築するために必要な最も重要なツールを提供します。

Werkzeug WSGI Toolkitの上に構築されています。WSGIToolkitは、リクエストと応答を処理するために必要なWebサーバー機能を提供します。JINJA2テンプレートエンジンは、FlaskがHTMLテンプレートを処理できるようにし、開発者がダイナミックWebアプリケーションを作成できるようにします。

ここにフラスコを素晴らしいフレームワークにするいくつかの重要な機能があります:

    Webルーティングと処理リクエストを作成するための簡単なAPIがあります。
  • Jinja Template EngineはHTMLテンプレートをサポートしており、開発者が簡単にWebページを作成できるようにします。
  • サードパーティの拡張機能をサポートするため、非常にスケーラブルであるため、開発者はプロジェクトのニーズに応じて拡張機能をインストールできます。
  • アプリケーションの簡単なテストとデバッグを可能にする開発サーバーをバンドルします。
  • 全体として、Flaskは、Webアプリケーションを構築するための強力で柔軟でシンプルなフレームワークを提供します。初心者や経験豊富なWeb開発者にとって最適な選択であり、Python Web Development Ecosystemで最も人気のあるWebフレームワークの1つです。
フラスコの利点

開発でフラスコを使用することの利点のいくつかを詳しく見てみましょう。 シンプルさ。 FlaskのDesign Philosophyはシンプルさを強調しているため、あらゆるレベルの開発者がそれを理解し、使用することが容易になります。これはまた、開発者がWebアプリケーションの構築を開始するためにいくつかの概念とAPIを学習するだけであるため、非常に低い学習曲線を持っていることを意味します。

柔軟性。 Flaskのミニチュア機能(Webフレームワークのコア機能のみを提供する)は、Flask Extensionsまたはサードパーティライブラリを使用してニーズを満たすために、それらをカスタマイズおよび拡張することができます。

ドキュメント。 Flaskのドキュメントは非常に包括的であり、基本的なトピックから高度なトピックまでのコンテンツをカバーするため、開発者がフレームワークの使用方法を簡単に学ぶことができます。

互換性。 Flaskは、さまざまなPythonバージョンと互換性があるため、既存のPythonコードベースで簡単に使用できます。また、複数のWebサーバーをサポートしているため、さまざまなホスティングプラットフォームに簡単に展開できます。

速い開発。 Flaskのシンプルさと柔軟性により、アプリケーションのセットアップに必要なボイラープレートコードが削減され、開発者が迅速に開始できます。

フラスコは、ウェブ上で多くの興味深い方法で使用されています。いくつかの注目すべき例には、次のものが含まれます

    pgadmin。 Postgres管理インターフェイスはFlaskインスタンスで実行され、開発者にPostgresデータベースを管理できるインターフェイスを提供します。
  • twilio。これは、複数のAPIでフラスコを使用する通信プラットフォームです。
  • pinterest。この写真共有アプリは、Web開発スタックでFlaskを使用しているため、チームはカスタム機能と統合を簡単に作成できます。

時期Flask

フラスコのシンプルさと使いやすさにより、さまざまなWebプロジェクトに最適な選択肢になります。

プロトタイプ設計。使いやすさと柔軟性により、プロトタイプを迅速に作成するための優れた選択肢となり、開発者が新しい機能を迅速に構築およびテストできるようになります。
  • RESTFUL APIを作成します。独自のシンプルなAPIにより、HTTPリクエストを簡単に作成および処理できます。
  • eコマースアプリケーション。オンライン市場やeコマースプラットフォームの構築に最適です。
  • 金融。アカウント管理、トランザクション処理、投資追跡など、金融アプリケーションを構築するために使用できます。
  • ai。 AIトレーニングモデルを構築および展開するための便利で簡単な方法を提供します。
フラスコ

を使用しない場合 フラスコは優れたフレームワークであり、多くの利点と強力な機能を備えていますが、場合によっては、これらの機能はそれに有害である可能性があります。他のタイプのフレームワークにより適したプロジェクトをいくつか見てみましょう。

組み込み関数が必要なプロジェクト。ミニフレームワークとして、FlaskはWebアプリケーションを作成するために必要なコアパーツのみを提供します。プロジェクトに管理インターフェイス、認証、またはORMが必要な場合、Djangoがより良い選択です。

厳格な安全要件を備えたプロジェクト。フラスコは柔軟なフレームワークであるため、アプリケーションである程度のセキュリティを実現するために、サードパーティの拡張機能に依存する必要があります。これは確かに機能しますが、竜巻やねじれなど、より安全なアプローチをとる、よりテストされたフレームワークに頼ることが最善です。

特定のコーディング基準を実施する

プロジェクト。 Flaskの柔軟性により、アプリケーションを開発することで、開発者は適切な方法でアプリケーションを作成できます。ただし、Djangoのようなフレームワークは、開発者が特定の慣習に従うことを保証します。つまり、開発者はあるプロジェクトから別のプロジェクトに簡単に移動できます。

フラスコ開発環境のセットアップ

開発環境のセットアップからインストール、最後に最小限のアプリケーションを起動することまで、フラスコを始める方法を見てみましょう。

前提条件

Pythonは開発マシンにインストールする必要があります。 Pythonをインストールする方法に関する指示は次のとおりです(ただし、インストールした可能性があります)。

仮想環境を作成します

仮想環境は、グローバルなPythonインストールに影響を与えることなく、特定のプロジェクトのパッケージをインストールできる孤立したPython環境です。 (以下は、仮想環境が役立つ理由に関するさらなる議論です。)Virtualenv、Venv、Condaなど、Pythonに仮想環境を作成できるさまざまなパッケージがあります。

この記事では、virtualenvを使用します。次のコマンドを使用してインストールできます:

<code>pip install virtualenv</code>
virtualenvをインストールした後、フラスコのアプリケーションが存在するディレクトリを作成できます。ディレクトリに名前を付けることができます - フラスコを除いて、これは競合につながるためです。 flask_intro:

という名前を付けます

<code>mkdir flask_intro</code>
次に、そのディレクトリにアクセスして、使用を開始できるようにします。

このディレクトリでは、次のコマンドを使用して仮想環境を作成しましょう。

<code>cd flask_intro</code>
上記のコマンドは仮想環境を作成し、それをmyenvに名前を付けます。 Flaskを取り付けて、アクティブにしましょう。 LinuxまたはMacOSで仮想環境を有効にするには、次のコマンドを使用します。

Windowsでは、このコマンドを使用してください:
<code>virtualenv myenv</code>

仮想環境がアクティブになると、以下の出力と同様に、シェルプロンプトに仮想環境の名前が表示されます。
<code>. myenv/bin/activate</code>

アクティブ化された仮想環境では、次のコマンドを使用してフラスコをインストールし続けることができます。

<code>. myenv\Scripts\activate</code>
フラスコが取り付けられたら、先に進んで最小限のアプリケーションを作成しましょう。 Flaskアプリケーションを保存するモジュールを作成します。簡単にするために、hello.pyと名付けます。 LinuxまたはMacOSでは、次のコマンドを使用してFlask_introディレクトリでこのファイルを作成できます。

上記のコマンドは、hello.pyという名前のファイルを作成します。また、開発環境を使用してこのファイルを作成することもできます。ファイルを作成した後、次のコードを入れて保存します。
<code>(myenv)/~(path to your project directory)$</code>
上記のコードでは、FlaskクラスをFlaskモジュールからインポートし、APPという名前のFlaskインスタンスを作成し、__Name__変数を渡します。

それから、ルートDecorator @app.route( "/")があります。つまり、誰かがアプリケーションのルートルートにアクセスした後、hello_world()関数が起動されます。
<code>pip install Flask</code>

アプリケーションをさまざまな方法で実行できますので、いくつかを見てみましょう。最初の方法は、Flaskコマンドに複数のパラメーターを提供することです。-Appに、Flaskアプリケーションのモジュールの名前を保存して実行します。以下を参照してください:

<code>touch hello.py</code>
上記の例でサンプルアプリケーションを実行してください:

<code>pip install virtualenv</code>
これにより、アプリケーションがデフォルトのポート5000でアプリケーションを実行するため、アプリケーションはhttp:// localhost:5000/or http://127.0.0.1:5000/で利用可能になります。他のポートでアプリケーションを使用できるようにする場合は、-pまたは - ポートオプションを使用してポートを指定できます。たとえば、

<code>mkdir flask_intro</code>
これにより、ポート8080でサーバーが実行されます。アプリケーションを実行できるもう1つの方法は、Flask Runコマンドのみを使用することです。ただし、これを行うためには、Flask_App環境変数を設定することにより、フラスコインスタンスを保持するモジュールの名前をフラスコに指示する必要があります。したがって、私たちの場合、Flaskアプリケーションはhello.pyというファイルに含まれています。したがって、次のように設定できます:

<code>cd flask_intro</code>
flask_app環境変数を設定したので、このような開発サーバーを実行できます。

このコードを使用して、Webアプリケーションを実行するようになりました。これは、フラスコの核となる哲学を示しています。物事をスムーズにするために多くのボイラープレートコードは必要ありません。ただし、上記で設定したアプリケーションは、「Hello World!」に文字列をレンダリングするため、あまり実用的でも有用ではありません。もっと便利なことをするために、テンプレートに目を向けることができます。次に、それらに対処する方法を確認します。

<code>virtualenv myenv</code>

フラスコテンプレート

フラスコテンプレートは、データベースやユーザー入力のデータなど、さまざまな要因に基づいて異なるコンテンツを表示できる動的なWebページを作成する方法です。フラスコのテンプレートは、実行時に実際の値に置き換えるHTMLと特別なプレースホルダー(テンプレート変数と呼ばれる)の組み合わせです。

テンプレートはテンプレートディレクトリに保存されます。したがって、テンプレートを使用するには、Flaskからrender_template()メソッドをインポートする必要があります。 render_template()メソッドは、テンプレート名とテンプレートに渡す必要があるオプションのデータを受け入れます。

テンプレートを使用してWebページをレンダリングする例を見てみましょう。

上記の例では、 @app.route()デコレーターを介してルートURL( "/")にバインドされているビュー関数-index() - があります。この関数には、タイトルとメッセージの2つの変数があります。最後に、Template index.htmlをrender_template()に渡し、タイトルとメッセージ変数を渡します。

上記のコードが機能するためには、Templatesディレクトリにindex.htmlテンプレートが必要です。したがって、テンプレートは次のようになります:

<code>. myenv/bin/activate</code>

index.htmlファイルでは、プレースホルダー{{{title}}および{{message}}は、render_template()メソッドのテンプレートに渡された値に置き換えられます。

テンプレートには、ステートメントやループの場合など、より複雑なロジックを含めることもできます。これにより、より動的なページを生成できます。

したがって、Flaskのテンプレートは、ユーザーが生成した情報でいっぱいの動的なWebページを作成するための非常に強力なオプションを開発者に提供します。
<code>. myenv\Scripts\activate</code>

フラスコルーティング

ほとんどのWebアプリケーションには複数のURLがあります。そのため、どの機能を処理するかを知る方法が必要です。フラスコでは、このマッピングはルーティングと呼ばれます。これは、機能を表示するためにURLを結合またはマッピングするプロセスです。 URLをバインドして機能を表示することで、アプリケーションがGet、Post、Put、削除など、さまざまなタイプのリクエストを処理できます。また、アプリケーションが異なるクライアントからの複数のリクエストを処理することもできます。

フラスコにルートをセットアップするには、ルート()デコレータを使用します。デコレーターはURLをビュー関数にバインドします。そのため、ユーザーがアプリケーションに存在するURLにアクセスすると、Flaskは関連するビュー関数をトリガーしてリクエストを処理します。

例を見てみましょう:

<code>pip install virtualenv</code>

上記の例では、URLについて(/about)について定義します。アプリケーションがAbout URLのリクエストを受信すると、FlaskはAbout()関数を呼び出します。

これまでのところ、これらの例は異なるページを返しますが、すべてを使用してHTTPリクエストのみを使用しています。特定のリクエストを処理できるように、HTTPメソッドをルート()デコレータのオプションパラメーターとして指定できます。

プットリクエストの例を見てみましょう:

<code>mkdir flask_intro</code>
この例では、user_idを考慮して、ユーザーの詳細を更新するためのパットリクエストを処理するルートを定義します。私たちのルートで

を使用して、ユーザーIDが整数である必要があることを示します。

update_user()関数では、request.get_json()メソッドを使用して、リクエストボディからユーザーデータを取得します。データベース内のユーザーの更新や、成功または失敗を示す応答とHTTPステータスコード(この場合は成功を示す)を示す応答を返すなど、ユーザーデータで特定のアクションを実行します。

一般に、ルーティングにより、フラスコはさまざまな種類のリクエストを処理できるようになり、アプリケーションがユーザーがアクセスしたURLに基​​づいてさまざまな方法でデータを処理および処理できるようになります。

フラスコのフォームと検証

ユーザーのデータを表示することに加えて、フラスコテンプレートは、さらに処理またはストレージのためにユーザー入力を受信することもできます。これを行うために、FlaskはHTMLフォームの処理とユーザー入力の処理に関する組み込みサポートを提供します。フラスコフォームは、フォームデータを処理して検証を実行するための柔軟で強力な方法を提供するWTFormsライブラリに基づいています。ただし、ライブラリは標準のフラスコのインストールの一部ではないため、次のコマンドを使用してインストールする必要があります。

wtformsをインストールした後、フラスコでフォームを使用するには、flask_wtf.flaskformから継承するフォームクラスを定義する必要があります。このクラスには、フォーム上のフィールドとそれらに適用されるべき検証ルールが含まれます。
<code>cd flask_intro</code>

ログインフォームの例を見てみましょう:

上記の例では、2つのフィールド(電子メールとパスワード)と送信ボタンを持つログインフォームを定義します。また、各フィールドの検証ルールを指定するバリデーターパラメーターもあります。たとえば、この場合、電子メールフィールドに有効な電子メールアドレスが含まれ、パスワードフィールドには少なくとも6文字のパスワードが含まれる必要があります。

フォームクラスを定義した後、ログインビュー関数で使用してフォームをレンダリングし、ユーザーが送信したフォームデータを処理できます。ビュー関数の例を見てみましょう:

<code>pip install virtualenv</code>
上記の例では、2つのHTTPメソッド(取得と投稿)を受け入れるログインビューがあります。したがって、ユーザーがブラウザからURLにアクセスすると、ユーザーがユーザーがrender_templateメソッドを使用してHTMLフォームとしてレンダリングします。 Formate_on_submitメソッドを使用してフォームが有効かどうかを確認するときにフォームを提出します。フォームが有効な場合は、電子メールとパスワードにアクセスします。

login.htmlフォームは次のようになる場合があります

上記のテンプレートは、電子メールとパスワードのフィールドとそのラベル、およびテキスト「ログイン」の送信ボタンをレンダリングします。 form.csrf_tokenフィールドは、クロスサイトリクエスト偽造(CSRF)攻撃を防ぐために含まれています。 {%for%}ループを使用して、発生する可能性のある検証エラーを表示します。
<code>mkdir flask_intro</code>

Flaskフォームを使用することにより、ユーザー入力を処理する強力な方法があり、入力したデータを確認できます。

フラスコ拡張

ご覧のとおり、Flaskは、Webアプリケーションを作成するために必要な最も重要な部分のみを含むミニチュアフレームワークです。ただし、Flask自体が提供しない機能を追加する必要がある場合は、インストールにパッケージを追加する必要があります。フラスコ拡張機能は、この追加機能を提供する方法です。必要なパッケージを単純にインストールできます。 Flaskコミュニティは多くの拡張機能を作成しました。

以下は、最も人気のある拡張機能の一部です。

Flask-sqlalchemy:SQLalchemy Toolkitとの統合を提供して、データベースと簡単に対話します。

    Flask-Login:Flaskにユーザー認証とセッション管理を提供します。
  • Flask-Mail:Flaskから電子メールを送信するための簡単なインターフェイスを提供します。
  • Flaskコミュニティは、さまざまな機能を処理するために数百の拡張機能を作成しました。通常、拡張機能の使用は簡単です。まず、PIPを使用して必要な拡張機能をインストールする必要があります。
フラスコと滑り止めを使用した例を見てみましょう。まず、インストールする必要があります:

次に、構成する必要があります。たとえば、

<code>cd flask_intro</code>

上記の例では、ユーザー名と電子メールフィールドを備えたユーザーモデルがあります。また、sqlalchemy_database_uriを構成し、emple.dbにあるsqliteデータベースを使用するように指示しました。セットアップ後、DBオブジェクトを使用してデータベースと対話できるようになりました。たとえば、新しいユーザーを作成して、次のようにデータベースに追加できます。

<code>virtualenv myenv</code>
フラスコ拡張機能を使用すると、アプリケーションは通常、コアフラスコで実装されるよりも多くの機能を持つことができます。

<code>. myenv/bin/activate</code>
結論

この記事では、軽量で柔軟なPython WebフレームワークであるFlaskを紹介します。 Flaskを使用して、そのシンプルさ、柔軟性、使いやすさなど、Web開発に使用する利点について説明します。また、開発環境のセットアップ、ルートの作成、テンプレートの使用、プロセスフォーム、およびFlask-Sqlalchemyなどの拡張機能を取り上げました。

全体として、フラスコは、小さな個人プロジェクトから大規模な商業アプリケーションまで、あらゆるサイズのWebアプリケーションを構築するのに最適な選択肢です。学習と使用は簡単ですが、多数の拡張機能を通じて高度な機能も提供しています。

フラスコについてもっと知りたい場合は、追加のリソースを次に示します。

Flask Document
    ミゲル・グリンバーグによるフラスコ・メガ・チュートリアル
  • ミゲル・グリンバーグのフラスコ・ウェブ開発
  • 単純なフラスコアプリケーションチュートリアル
  • 本物のPython Flaskチュートリアル
  • DjangoとFlaskの詳細とその最良のユースケースについて詳しく知りたい場合は、DjangoとFlaskを使用してPython Web Developmentをご覧ください。
これらの無料のフラスコボイラープレートを表示して、最初のWebアプリケーションを構築することもできます。

フラスコ(Python Framework)

についての

faqs フラスコとは何ですか?

フラスコは、PythonのミニチュアWebフレームワークです。軽量で使いやすいように設計されているため、WebアプリケーションとAPIの開発に最適です。

フラスコを取り付ける方法は?

PIP(Pythonのパッケージマネージャー)を使用してFlaskをインストールできます。コマンドを使用して、システムにフラスコをインストールします。

フラスコの主要な機能は何ですか?

<code>pip install Flask</code>フラスコは、そのシンプルさ、柔軟性、ミニマリズムで知られています。 URLルーティング、リクエスト処理、テンプレートレンダリングなどの機能を提供し、開発者は必要に応じて他のコンポーネントを選択および統合できるようにします。

Flaskは、Djangoなどの他のPython Webフレームワークとどのように比較されますか?

フラスコはミニチュアフレームワークであり、DjangoはフルスタックのWebフレームワークです。 Flaskは、コンポーネントを選択できる柔軟性と自由度を高め、Djangoには多くの組み込み機能と慣習が備わっています。

フラスコでRESTFUL APIを構築できますか?

はい、フラスコは安らかなAPIを構築するのに最適です。 HTTPメソッドのシンプルさとサポートにより、APIエンドポイントを作成するための一般的な選択肢になります。

フラスコは大規模なWebアプリケーションに適していますか?

フラスコは大規模なアプリケーションに使用できますが、Djangoのようなフルスタックフレームワークよりも、より手動構成とコンポーネント統合が必要になる場合があります。

以上がPython MicroFrameworkであるFlaskを開始しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。