あなたも私と同じなら、おそらく Flask アプリケーションを開始するためのいくつかの異なるアプローチを見て、どれが最適なのか疑問に思ったことがあるでしょう。 manage.py が表示される場合もあれば、create_app が表示される場合もあります。これは、特に Flask 開発に慣れていない場合、またはあるプロジェクトから別のプロジェクトに移行している場合に混乱を招く可能性があります。
この記事では、Flask アプリケーションを起動するために使用される最も一般的な方法を説明し、明確な例を示して説明します。これにより、ユースケースに最適なものを判断できるようになります。
方法 1: 基本的な app.py ファイル
Flask アプリケーションを開始する最も簡単な方法は、app.py ファイルを作成することです。これは、小規模なアプリケーションや、Flask を使い始めたばかりの場合に最適です。
# app.py from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Welcome to my Flask app!" if __name__ == "__main__": app.run(debug=True)
実行方法:
ターミナルで、app.py を含むフォルダーに移動し、次のコマンドを実行します。
python app.py
Flask は localhost:5000 で起動し、ブラウザでアプリにアクセスできます。これは最も早い方法ですが、スケーリングには制限があります。
方法 2: create_app ファクトリ パターンを使用する
アプリケーションが成長するにつれて、create_app() を使用したファクトリ パターンがより便利になります。この方法では、モジュール形式でアプリを構成および初期化する方法が提供され、複雑なセットアップをより適切に管理できるようになります。
# app.py from flask import Flask def create_app(): app = Flask(__name__) @app.route('/') def home(): return "Hello from Factory Pattern!" return app
実行方法:
if __name__ == "__main__" ブロックがないため、FLASK_APP 環境変数を設定して実行します。
export FLASK_APP=app:create_app export FLASK_ENV=development flask run
この方法は、構成管理が容易になるため拡張性が高く、大規模なアプリケーションや拡張機能を使用するアプリケーションに適しています。
方法 3: Flask スクリプトで manage.py を使用する
Flask の組み込みコマンドライン インターフェイス (CLI) が優先され、Flask-Script は非推奨になりましたが、一部のレガシー アプリケーションでは依然として manage.py アプローチが使用されています。
# manage.py from flask_script import Manager from app import create_app app = create_app() manager = Manager(app) if __name__ == "__main__": manager.run()
アプリケーションを実行するには:
python manage.py runserver
このメソッドは現在では時代遅れであると考えられているため、同様の機能については Flask の CLI に依存することをお勧めします。
方法 4: 生産に Gunicorn を使用する
Flask アプリケーションを運用環境にデプロイする場合、Flask の組み込み開発サーバーの代わりに Gunicorn などの WSGI サーバーを使用することをお勧めします。
Gunicorn で create_app メソッドを実行する方法は次のとおりです。
gunicorn 'app:create_app()'
これにより、Gunicorn を使用して Flask アプリが起動します。必要に応じて、ワーカー プロセスの数、ホスト、ポートを指定できます。
gunicorn -w 3 -b 0.0.0.0:8000 'app:create_app()'
方法 5: 組み込み CLI に flask run を使用する
Flask の CLI により、アプリの実行や移行などの他のコマンドの実行が簡素化されます。デフォルトの CLI は FLASK_APP および FLASK_ENV 環境変数を使用します。
export FLASK_APP=app.py export FLASK_ENV=development flask run
このコマンドは、ホット リロードとデバッグ モードを有効にして開発モードでアプリを実行します。開発には最適ですが、運用環境では使用しないでください。
どちらを使用するべきですか?
- 小規模プロジェクトまたはプロトタイプ: 基本的な app.py メソッドは完全に機能します。
- 大規模アプリケーション: 拡張機能や複雑な構成に合わせて拡張できるため、create_app ファクトリ パターンを選択してください。
- 本番: Gunicorn または他の WSGI サーバーを使用して、複数のリクエストを同時に処理し、パフォーマンスを向上させます。
結論
これらのさまざまな方法を理解すると、Flask アプリケーションを開始する方法を柔軟に行うことができます。小規模なプロジェクトを構築する場合でも、大規模なシステムを導入する場合でも、ニーズに合った適切なアプローチが見つかります。それぞれの方法の要点を理解することで、アプリケーションを効率的に保守および拡張できるようになります。
自分にとってより効果的な別のアプローチを使用したことがありますか?コメント欄でお知らせください!
以上がFlask アプリケーションを開始する方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonlistscanstoreanydatatype,arraymodulearraysstoreonetype,andNumPyarraysarefornumericalcomputations.1)Listsareversatilebutlessmemory-efficient.2)Arraymodulearraysarememory-efficientforhomogeneousdata.3)NumPyarraysareoptimizedforperformanceinscient

heouttemptemptostoreavure ofthewrongdatatypeinapythonarray、yure counteractypeerror.thisduetothearraymodule'sstricttypeeencultionyを使用します

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

theScriptisrunningwithwrongthonversionduetorectRectDefaultEntertersettings.tofixthis:1)CheckthedededefaultHaulthonsionsingpython - versionorpython3-- version.2)usevirtualenvironmentsbycreatingonewiththon3.9-mvenvmyenv、andverixe

PythonArraysSupportVariousoperations:1)SlicingExtractsSubsets、2)Appending/ExtendingAdddesements、3)inSertingSelementSatspecificpositions、4)remvingingDeletesements、5)sorting/verversingsorder、and6)listenionsionsionsionsionscreatenewlistsebasedexistin

numpyarraysAressertialentionsionceivationsefirication-efficientnumericalcomputations andDatamanipulation.theyarecrucialindatascience、mashineelearning、物理学、エンジニアリング、および促進可能性への適用性、scaledatiencyを効率的に、forexample、infinancialanalyyy

UseanArray.ArrayOverAlistinPythonは、Performance-criticalCode.1)homogeneousdata:araysavememorywithpedelements.2)Performance-criticalcode:Araysofterbetterbetterfornumerumerumericaleperations.3)interf

いいえ、notallistoperationSaresuptedbyarrays、andviceversa.1)arraysdonotsupportdynamicoperationslikeappendorintorintorinsertizizing、whosimpactsporformance.2)リスト


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









