ホームページ  >  記事  >  バックエンド開発  >  すぐに始めましょう: Flask アプリケーションのデプロイメントの手順とヒント

すぐに始めましょう: Flask アプリケーションのデプロイメントの手順とヒント

王林
王林オリジナル
2024-01-19 10:32:051011ブラウズ

すぐに始めましょう: Flask アプリケーションのデプロイメントの手順とヒント

#Flask は、学習と使用が簡単で、非常に強力で柔軟なスケーラビリティを備えた軽量の Python Web フレームワークであるため、多くの Web 開発者の最初の選択肢となっています。 Web 開発に Flask を使用してアプリケーションを完成させたら、アプリケーションをサーバーにデプロイする必要があります。この記事では、Flask アプリケーションのデプロイメントの手順とテクニックを紹介し、すぐに開始できるように具体的なコード例を示します。

  1. 環境の準備
    デプロイを開始する前に、サーバーと Python 環境を準備する必要があります。この記事では Ubuntu システムを例として取り上げますが、他のシステムも同様です。次のコマンドを使用して、Python および関連する依存関係をインストールできます。
sudo apt-get update

sudo apt-get install python3 python3-pip python3-venv
  1. Python 仮想環境を作成する
    アプリケーションの依存ライブラリとシステムに付属する Python ライブラリを分離するために、通常は Python 仮想環境を使用して実行します。アプリケーション。次のコマンドを使用して仮想環境を作成できます。
python3 -m venv venv

このうち、venv は仮想環境の名前であり、アプリケーションのニーズに応じて置き換えることができます。作成が成功したら、次のコマンドを使用して仮想環境をアクティブ化できます。

source venv/bin/activate
  1. アプリケーション プロジェクトと依存ライブラリをインストールする
    Flask アプリケーション コードと依存ライブラリをサーバーにコピーし、アプリケーションのルート ディレクトリに入ります。次のコマンドを使用して、依存ライブラリをインストールできます。
pip install -r requirements.txt

このうち、requirements.txt は、依存ライブラリの名前とバージョン番号を格納するファイルです。次のコマンドを使用して、依存ライブラリのリストを生成できます。

pip freeze > requirements.txt
  1. アプリケーションとサーバーの構成
    展開する前に、最初にアプリケーションとサーバーを構成する必要があります。一般的に使用される構成には、データベース、電子メール、ログなどが含まれます。アプリケーションのルート ディレクトリに config.py ファイルを作成し、そこに構成情報を書き込むことができます。
class Config:
    DEBUG = True
    SECRET_KEY = 'secret key'
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://username:password@localhost/db_name'

このうち、SQLALCHEMY_DATABASE_URI はデータベースに接続するための URL です。実際の状況に応じて変更する必要があります。

さらに、サーバーにデプロイする場合、アプリケーションを運用モードで構成し、デバッグ モードを無効にする必要があります。次の構成を config.py ファイルに追加できます。

class ProductionConfig(Config):
    DEBUG = False

config = ProductionConfig()

サーバー上でも、ファイアウォール設定を変更し、アプリケーション ポートを開く必要があります。次のコマンドを使用してルールを追加できます。

sudo ufw allow 5000

このうち、5000 はアプリケーションのデフォルトのポート番号であり、必要に応じて変更できます。

  1. アプリケーションの起動
    アプリケーションのルート ディレクトリで、次のコマンドを使用してアプリケーションを起動できます。
flask run --host=0.0.0.0 --port=5000

このうち、--host パラメータはアプリケーションの IP アドレスを指定し、--port パラメータはアプリケーションのポート番号を指定します。応用。外部ネットワークからアプリケーションにアクセスするには、0.0.0.0 をサーバーのパブリック IP アドレスに置き換える必要があります。

  1. Nginx リバース プロキシの使用
    実際の展開では、Nginx は通常、リクエストを Flask アプリケーションに転送することでパフォーマンスとセキュリティを向上させるリバース プロキシ サーバーとして使用されます。 Nginx は次のコマンドを使用してインストールできます。
sudo apt-get install nginx

インストールが完了したら、/etc/nginx/sites-available ディレクトリに myapp などの構成ファイルを作成できます。

server {
    listen 80;
    server_name example.com;
    root /path/to/app;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /static {
        alias /path/to/app/static;
    }
}

このうち、example.com はサーバーのドメイン名または IP アドレス、/path/to/app はアプリケーションのルート ディレクトリです。 。構成ファイル内の location /static は静的ファイルのパスを表しており、アプリケーションのニーズに応じて変更する必要があります。

構成ファイルを作成した後、それを /etc/nginx/sites-enabled ディレクトリにリンクし、Nginx を再起動する必要があります。

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -s reload
  1. クラウド サーバーへのデプロイ
    Flask アプリケーションをより便利にデプロイするには、クラウド サーバーの使用を検討できます。 Alibaba Cloud、Tencent Cloud、Huawei Cloudなどがクラウドサーバーサービスを提供しています。 Flask アプリケーションをクラウド サーバーにデプロイするには、まずオペレーティング システムと構成を選択し、次に SSH を使用してサーバーに接続し、環境を準備してアプリケーションをデプロイする必要があります。
  2. その他のヒント
    Flask アプリケーションをデプロイするときに注意する必要がある詳細がいくつかあります。ここでは一般的なヒントをいくつか紹介します。
  • バージョン管理に Git を使用する
    開発プロセス中に、バージョン管理に Git を使用し、コードをコード リポジトリにプッシュできます。デプロイメント時に、サーバー上でコードをプルし、指定されたバージョンのコードを使用できます。
  • Supervisor を使用してアプリケーションを管理する
    Supervisor は、Flask アプリケーションのプロセスを管理し、例外が発生したときにアプリケーションを自動的に再起動するのに役立つプロセス管理ツールです。スーパーバイザは次のコマンドを使用してインストールできます。
sudo apt-get install supervisor

インストールが完了したら、/etc/supervisor/conf.d ディレクトリに myapp.conf などの構成ファイルを作成します。

[program:myapp]
directory=/path/to/app
command=/path/to/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app
user=user
autostart=true
autorestart=true
redirect_stderr=true

このうち、/path/to/app はアプリケーションのルート ディレクトリ、/path/to/venv は仮想環境のルート ディレクトリです。 , user は、サービスを実行しているユーザーです。

設定ファイルを作成した後、次のコマンドを使用してスーパーバイザを起動できます。

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myapp

このうち、myappは設定ファイルのプログラム名です。

  • Gunicorn を使用してパフォーマンスを向上させる
    Gunicorn は、Flask アプリケーションのパフォーマンスと同時処理能力を向上させることができる Python Web サーバーです。 Gunicorn は次のコマンドを使用してインストールできます。
pip install gunicorn

インストールが完了したら、次のコマンドを使用してアプリケーションのルート ディレクトリで Gunicorn を起動できます。

gunicorn -w 4 -b 0.0.0.0:5000 app:app

其中,-w参数表示工作进程的数量,-b参数表示绑定的IP地址和端口号,app:app表示应用的模块名和应用对象。

  1. 总结
    本文介绍了Flask应用部署的步骤和技巧,包括环境准备、创建Python虚拟环境、安装应用项目及依赖库、配置应用和服务器、启动应用、使用Nginx反向代理、部署到云服务器等。此外,还介绍了一些常用的技巧,如使用Git进行版本控制、使用Supervisor管理应用、使用Gunicorn提高性能等。希望本文能对Flask应用的部署有所帮助。

以上がすぐに始めましょう: Flask アプリケーションのデプロイメントの手順とヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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