Python プログラミング入門: 初めての Web アプリケーションの構築

序章

このブログ「Python プログラミング入門: 初めての Web アプリケーションの構築」へようこそ。あなたが初心者であっても、プログラミングの基礎を持った開発者であっても、この記事から知識とインスピレーションを得ることができると思います。

Python は、簡潔な構文と強力な機能で知られる、広く使用されている高級プログラミング言語です。Python の応用分野はデータ分析、機械学習からネットワーク プログラミング、Web 開発、システム スクリプティングまで非常に幅広く、重要な用途があります。Python の簡潔で読みやすい構文は、初心者にとって理想的な選択肢となっています。また、Python の豊富なライブラリとフレームワークにより、プロの開発者はアプリケーションを迅速かつ効率的に開発できます。

この記事では、Web 開発に Python を使用する方法に焦点を当てます。私たちの目標は、シンプルだが完全に機能する Web アプリケーションを作成することです。まず Python の基本を説明し、次に Python の Flask フレームワークを使用して Web アプリケーションを作成する方法について詳しく説明します。また、データベース操作、フォーム処理、ユーザー認証などを含む Web アプリケーションの機能を拡張する方法も紹介し、最後に Web アプリケーションをテストしてデプロイする方法を学びます。

Python の初心者でも心配する必要はありません。理解していただけるよう、各ステップをできるだけ詳しく説明します。すでに Python の経験がある方も、この記事を通じて新しい知識やスキルを学ぶことができると思います。経験に関係なく、実際にやってみることが学習の最良の方法であるため、自分で試してみることをお勧めします。

それでは、始めましょう!

目次

序章

1.Pythonの基本

1.1 Pythonのインストールと環境構築

1.2 Pythonの基本構文

2 つの高度な Python

2.1 リスト、辞書、セット

2.2 関数とクラス

2.3 モジュールとパッケージ

Web開発の3つの基本

3.1 Web アプリケーションの仕組み

3.2 HTTP プロトコルの基本

4 人は Flask を使用して Web アプリケーションを作成します

4.1 Flaskの紹介とインストール

4.2 Hello World アプリケーション

4.3 ルーティングおよびビュー機能

4.4 テンプレートと静的ファイル

5 人は Flask-SQLAlchemy を使用してデータベースを処理します

5.1 Flask-SQLAlchemy の紹介とインストール

5.2 構成データベース

5.3 モデルの定義

5.4 データのクエリ

5.5 データの挿入、更新、削除

6 人は Flask-WTF を使用してフォームを処理します

6.1 Flask-WTFの導入とインストール

6.2 フォームを定義する

6.3 フォームのレンダリング

6.4 フォームの操作

Seven はユーザー認証を処理するために Flask-Login を使用します

7.1 Flask-Loginの導入とインストール

7.2 ユーザーモデル

7.3 ログインとログアウト

7.4 保護されたビュー

8 Flask-Bootstrap を使用して Web アプリケーションの美しさを向上させる

8.1 Flask-Bootstrapの導入とインストール

8.2 ブートストラップの使用

8.3 カスタムブートストラップ

9 つの展開 Flask アプリケーション

9.1 Gunicorn の導入とインストール

9.2 Gunicorn を使用した Flask アプリケーションの実行

9.3 Nginxの導入とインストール

9.4 Nginxの構成


1.Pythonの基本

Web アプリケーションの作成を開始する前に、Python がインストールされており、適切な環境が設定されていることを確認してください。以下では、Python のインストールと基本的な構文について説明します。

1.1 Pythonのインストールと環境構築

Python のインストール プロセスは、オペレーティング システムによって若干異なります。通常、最新バージョンの Python を Python の公式 Web サイトからダウンロードしてインストールできます。同時に、Anaconda のような Python ディストリビューションを使用することもできます。これには、Python インタープリターと、一般的に使用される一連のライブラリとツールが含まれています。

Python をインストールした後、python --versionコマンド ラインに入力して、Python が正常にインストールされたかどうかを確認できます。Python のバージョン番号が表示されている場合は、Python が正常にインストールされていることを意味します。

Python ライブラリと依存関係を管理するには、仮想環境を使用することをお勧めします。Python の組み込みツールを使用することvenvも、pipenvPython などのサードパーティ ツールを使用して仮想環境を作成および管理することもできます。

1.2 Pythonの基本構文

Python の構文は非常に簡潔で読みやすいです。以下では、Python の変数、データ型、制御構造について簡単に紹介します。

  • 変数: Python では、変数の型を宣言する必要はありません。等号を使用して=値を割り当てるだけで、Python が変数の型を自動的に推測します。たとえばx = 10、、、y = "Hello, world!"

  • データ型int: Python には、整数 ( )、浮動小数点数 ( float)、文字列 ( str)、リスト ( ) list、タプル ( tuple)、辞書 ( dict)、コレクション ( ) など、さまざまな組み込みデータ型がありますset

  • 制御構造if: Python は、条件ステートメント、ループ、forエラー処理などの一般的な制御構造をサポートしていますwhiletry/except

以下に簡単な例をいくつか示します。

# 变量和数据类型
x = 10
y = 3.14
z = "Hello, world!"
print(x, y, z)

# if条件语句
if x > 0:
    print("x is positive")

# for循环
for i in range(5):
    print(i)

# try/except错误处理
try:
    print(10 / 0)
except ZeroDivisionError:
    print("Cannot divide by zero")

以上がPythonの基礎知識です。次に、Python をさらに深く掘り下げて、Web アプリケーションの作成を開始します。

2 つの高度な Python

Web アプリケーションの作成を開始する前に、リスト、辞書、セット、関数、クラス、モジュール、パッケージなどの Python の高度な機能を詳しく見てみましょう。

2.1 リスト、辞書、セット

listPython には、リスト ( )、辞書 ( dict)、セット ( set)など、いくつかの組み込みデータ構造があります。これらは非常に強力で、データを効率的に整理して処理するのに役立ちます。

  • List : リストは、他のリストを含む任意のタイプの要素を含めることができる、順序付けられた要素のコレクションです。リスト内の要素にはインデックスによってアクセスでき、appendinsertなどremoveのメソッドを使用してリストを変更できます。

  • 辞書: 辞書はキーと値のペアのコレクションであり、キーは整数、文字列、タプルなどの不変型である必要があり、値は任意の型にすることができます。を使用して[key]辞書内の値にアクセスしたり、getメソッドを使用してデフォルト値を取得したりできます。

  • Set : セットは、重複を含まない要素の順序付けされていないコレクションです。addおよびメソッドを使用しremoveて要素を追加または削除したり、和集合、交差、差分などの集合演算を使用したりすることもできます。

2.2 関数とクラス

関数とクラスは Python の重要な概念であり、コードの再利用とカプセル化を実現する主な方法です。

  • 関数: 関数は、名前付きの再利用可能なコードです。defキーワードを使用して関数を定義し、関数名と括弧を使用して関数を呼び出すことができます。

  • クラス: クラスは、新しい型を定義する方法です。キーワードを使用してクラスを定義しclass、クラス名と括弧を使用してクラスのインスタンスを作成します。クラスにはプロパティとメソッドを含めることができます。プロパティはクラスの状態であり、メソッドはクラスの動作です。

2.3 モジュールとパッケージ

モジュールとパッケージは、Python がコードを編成する方法です。モジュールは Python コードを含むファイルであり、パッケージはモジュールとその他のパッケージを含むディレクトリです。

  • モジュール: キーワードを使用してimportモジュールをインポートし、モジュール名とドットを使用してモジュール内の関数とクラスにアクセスできます。

  • パッケージ: パッケージはモジュールを整理する方法です。パッケージは__init__.pyファイルを含むディレクトリであり、パッケージ名の後にドットを使用してパッケージ内のモジュールをインポートできます。

これらは Python の高度な機能です。次に、Python の Flask フレームワークを使用して Web アプリケーションを作成する方法を学び始めます。

Web開発の3つの基本

Web アプリケーションの作成を始める前に、Web アプリケーションの仕組みと HTTP プロトコルの基本を理解しましょう。

3.1 Web アプリケーションの仕組み

Web アプリケーションはクライアントサーバー アプリケーションです。このモデルでは、ユーザーはブラウザ (クライアント) を通じてサーバーにリクエストを送信し、サーバーはリクエストを処理してクライアントに応答を返し、クライアントはその応答をユーザーに表示します。

通常、Web アプリケーションには次の部分が含まれます。

  1. クライアント: クライアントは通常、Chrome や Firefox などのブラウザです。クライアントは、HTTP 要求の送信と HTTP 応答の受信を行い、応答の内容をユーザーに表示します。

  2. サーバー: サーバーは、Web アプリケーションをホストするコンピューターです。サーバーは、HTTP 要求を受信し、要求を処理して HTTP 応答を生成し、応答をクライアントに送り返す責任を負います。

  3. データベース: データベースは、Web アプリケーションのデータを保存するために使用されます。サーバーはデータベースにクエリを実行してデータを取得または更新し、そのデータを HTTP 応答に含めることができます。

3.2 HTTP プロトコルの基本

HTTP は HyperText Transfer Protocol の略称で、Web アプリケーションで使用される主要なプロトコルです。HTTP プロトコルは、クライアントとサーバー間の通信の形式とルールを定義します。

HTTP リクエストは次の部分で構成されます。

  1. リクエスト ライン: リクエスト ラインには、リクエスト メソッド (GET、POST など)、リクエスト URI、HTTP バージョンが含まれます。

  2. リクエスト ヘッダー: リクエスト ヘッダーには、ホスト、ユーザー エージェント、受け入れ、Cookie など、リクエストを説明するメタデータが含まれています。

  3. リクエスト本文: リクエスト本文には、フォーム データ、ファイルなどのリクエストのコンテンツが含まれます。すべてのリクエストにリクエスト本文があるわけではありません。

HTTP 応答は次の部分で構成されます。

  1. ステータス行: ステータス行には、HTTP バージョン、ステータス コード、ステータス テキストが含まれます。

  2. 応答ヘッダー: 応答ヘッダーには、Content-Type、Content-Length、Set-Cookie など、応答を説明するいくつかのメタデータが含まれます。

  3. 応答本文: 応答本文には、HTML、JSON、画像などの応答のコンテンツが含まれます。

以上がWeb開発の基礎知識です。次に、Python の Flask フレームワークを使用して Web アプリケーションを作成する方法を学び始めます。

4 人は Flask を使用して Web アプリケーションを作成します

Flask は、シンプルで使いやすいだけでなく、強力で柔軟な軽量の Python Web フレームワークです。次に、Flask を使用して簡単な Web アプリケーションを作成する方法を説明します。

4.1 Flaskの紹介とインストール

Flask の設計哲学は「マイクロコア」です。これには、ルーティングやリクエスト応答処理などの最も基本的な Web 機能のみが含まれており、データベース操作、フォーム処理、ユーザー認証などの他の機能は拡張機能によって実装されます。これにより、Flask は非常に柔軟になり、ニーズに応じてさまざまな拡張機能を選択して組み合わせることができます。

pip を使用して Flask をインストールできます。

pip install flask

 

4.2 Hello World アプリケーション

Flask アプリケーションの作成は非常に簡単です。まず、Flask クラスをインポートし、次に Flask アプリケーションのインスタンスを作成する必要があります。次に、デコレータを使用してルートを定義し、関数を表示できます。最後に、runメソッドを使用して Flask アプリケーションを開始できます。

「Hello, World!」アプリケーションの例を次に示します。

from flask import Flask

app = Flask(__name__)

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

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

 

この例では、 ルート を定義します/。ユーザーがこの URL にアクセスすると、Flask はhello関数を呼び出し、その値を HTTP 応答のコンテンツとして返します。

4.3 ルーティングおよびビュー機能

Flask では、ルートはビュー関数への URL パターンのマッピングです。デコレータを使用してルートを定義できます@app.route

ビュー関数は、HTTP リクエストを処理し、HTTP レスポンスを生成する関数です。view 関数は文字列を返すことができ、Flask は文字列を HTTP 応答に変換し、適切な Content-Type ヘッダーを設定します。

複数のルートを定義して関数を表示でき、各ルートは 1 つ以上の HTTP メソッド (GET、POST など) に対応できます。

4.4 テンプレートと静的ファイル

ビュー関数は文字列を直接返すことができますが、実際の Web アプリケーションでは通常、より複雑な HTML ページを返す必要があります。HTML をより便利に生成するために、Flask は Jinja2 テンプレートの使用をサポートしています。

テンプレートは特別な構文を含む HTML ファイルであり、変数、ループ、条件、その他のステートメントをテンプレート内で使用できます。関数を使用してrender_templateテンプレートをレンダリングし、HTML を生成できます。

静的ファイルとは、CSS、JavaScript、画像など、Web アプリケーションで動的に生成する必要のないファイルです。静的ファイルをアプリケーションstaticディレクトリに配置し、url_for関数を使用して静的ファイルの URL を生成できます。

上記は、Flask を使用して Web アプリケーションを作成する基本的な手順です。次に、データベース操作、フォーム処理、ユーザー認証などを含む Web アプリケーションの機能を拡張する方法を学びます。

5 人は Flask-SQLAlchemy を使用してデータベースを処理します

Web アプリケーションでは通常、ユーザー情報や製品情報などのデータを保存および操作する必要があります。これらのデータは通常、データベースに保存されます。Flask-SQLAlchemy は、高度な SQLAlchemy サポートを提供する Flask 拡張機能であり、Flask アプリケーションでデータベースをより簡単に操作できるようになります。

5.1 Flask-SQLAlchemy の紹介とインストール

Flask-SQLAlchemy は、Flask に SQLAlchemy サポートを提供する拡張機能です。SQLAlchemy は、低レベルの SQL 操作を高レベルの Python クラスとオブジェクトの操作に抽象化し、Python の方法でデータベースを操作できるようにする Python ORM フレームワークです。

pip を使用して Flask-SQLAlchemy をインストールできます。

pip install flask_sqlalchemy

 

5.2 構成データベース

Flask-SQLAlchemy インスタンスを作成する前に、Flask アプリケーション構成でデータベース URL を設定する必要があります。データベース URL の形式は次のとおりです。

dialect+driver://username:password@host:port/database

 たとえば、PostgreSQL データベースを使用し、データベースがポート 5432 でローカルに実行されており、ユーザー名とパスワードが両方とも で、postgresデータベース名が の場合myapp、データベース URL は次のようになります。

postgresql://postgres:postgres@localhost:5432/myapp

5.3 モデルの定義

Flask-SQLAlchemy では、データベース テーブルはモデル クラスと呼ばれる Python クラスによって定義されます。モデル クラスは から継承しdb.Model、各属性はテーブルの列に対応します。

モデルクラスの例を次に示します。

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

5.4 データのクエリ

SQLAlchemy のクエリ API を使用してデータをクエリできます。Query API は、Python で SQL クエリを作成する方法を提供します。

クエリ API の例をいくつか示します。

# 查询所有用户
users = User.query.all()

# 查询第一个用户
user = User.query.first()

# 根据ID查询用户
user = User.query.get(1)

# 根据用户名查询用户
user = User.query.filter_by(username='john').first()

5.5 データの挿入、更新、削除

モデル クラスのインスタンスを作成してデータを挿入したり、インスタンス プロパティを変更してデータを更新したり、db.session.deleteメソッドを呼び出してデータを削除したりできます。すべての変更は、db.session.commitメソッドを呼び出してデータベースにコミットする必要があります。

データの挿入、更新、削除の例をいくつか示します。

# 插入数据
user = User(username='john', email='[email protected]')
db.session.add(user)
db.session.commit()

# 更新数据
user.username = 'johnny'
db.session.commit()

# 删除数据
db.session.delete(user)
db.session.commit()

上記は、Flask-SQLAlchemy を使用してデータベースを処理する基本的な手順です。次に、Flask-WTForms でフォームを処理する方法を学びます。

6 人は Flask-WTF を使用してフォームを処理します

Web アプリケーションでは、ログイン フォーム、登録フォーム、検索フォームなどのフォームを処理する必要があることがよくあります。Flask-WTF は、Flask の WTForms サポートを提供する拡張機能です。これにより、Flask アプリケーションでフォームをより簡単に処理できるようになります。

6.1 Flask-WTFの導入とインストール

Flask-WTF は、Flask に WTForms サポートを提供する拡張機能です。WTForms は、フォームの生成と検証に役立つ Python フォーム ライブラリです。

pip を使用して Flask-WTF をインストールできます。

pip install flask_wtf

6.2 フォームを定義する

Flask-WTF では、フォームはフォーム クラスと呼ばれる Python クラスによって定義されます。フォーム クラスは から継承しflask_wtf.FlaskForm、各プロパティはフォーム フィールドに対応します。

以下はフォーム クラスの例です。

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Email, Length

class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Log In')

6.3 フォームのレンダリング

WTForms によって提供されるマクロをテンプレートで使用して、フォームをレンダリングできます。これは、フォームの HTML を迅速に生成するのに役立ちます。

テンプレートの例を次に示します。

{% from "_formhelpers.html" import render_field %}

<form method="POST">
    {
   
   { form.hidden_tag() }}
    {
   
   { render_field(form.username) }}
    {
   
   { render_field(form.password) }}
    {
   
   { render_field(form.submit) }}
</form>

6.4 フォームの操作

form.validate_on_submit()ビュー関数では、フォームが送信され検証されたかどうかを確認するメソッドを使用できます。このメソッドは、フォームが送信され、すべてのフィールドが検証された場合は True を返し、それ以外の場合は False を返します。

以下はビュー関数の例です。

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # TODO: 登录用户
        return redirect(url_for('index'))
    return render_template('login.html', form=form)

上記は、Flask-WTF を使用してフォームを処理する基本的な手順です。次に、Flask-Login でユーザー認証を処理する方法を学びます。

Seven はユーザー認証を処理するために Flask-Login を使用します

ユーザー認証は、ユーザーがアプリケーションにログインし、ログイン状態を維持できるようにする、Web アプリケーションの重要な機能です。Flask-Login は、Flask のユーザー認証サポートを提供する拡張機能です。これにより、Flask アプリケーションでのユーザー認証をより簡単に処理できるようになります。

7.1 Flask-Loginの導入とインストール

Flask-Login は、ユーザー セッションを管理するためのフレンドリーな方法を提供します。これは、ユーザーのログイン、ログアウト、記憶などの機能の実装に役立ちます。

pip を使用して Flask-Login をインストールできます。

pip install flask_login

7.2 ユーザーモデル

Flask-Login を使用する前に、 User モデルに 、is_authenticatedおよび を含むいくつかのメソッドis_activeを実装する必要がありますis_anonymousget_id

以下はユーザー モデルの例です。

from flask_login import UserMixin

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, nullable=False)
    password_hash = db.Column(db.String(128))

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

7.3 ログインとログアウト

login_userユーザーをログインする関数とlogout_userユーザーをログアウトする関数を使用できます。

ログインおよびログアウトの表示関数の例を次に示します。

from flask_login import login_user, logout_user

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password')
            return redirect(url_for('login'))
        login_user(user, remember=form.remember_me.data)
        return redirect(url_for('index'))
    return render_template('login.html', form=form)

@app.route('/logout')
def logout():
    logout_user()
    return redirect(url_for('index'))

7.4 保護されたビュー

デコレータを使用してlogin_requiredビューを保護し、ログインしているユーザーのみがビューにアクセスできるようにすることができます。

以下は、保護されたビュー関数の例です。

from flask_login import login_required

@app.route('/edit_profile')
@login_required
def edit_profile():
    # ...

上記は、Flask-Login でユーザー認証を処理する基本的な手順です。次に、Flask-Bootstrap を使用して Web アプリケーションの美しさを向上させる方法を学びます。

8 Flask-Bootstrap を使用して Web アプリケーションの美しさを向上させる

Bootstrap は人気のあるフロントエンド フレームワークで、さまざまな既製の CSS スタイルと JavaScript プラグインが含まれており、美しい Web インターフェイスを迅速に構築するのに役立ちます。Flask-Bootstrap は、Flask の Bootstrap サポートを提供する拡張機能で、Bootstrap のすべての静的ファイルを Flask アプリケーションに埋め込みます。

8.1 Flask-Bootstrapの導入とインストール

Flask-Bootstrap を使用すると、Flask アプリケーションで Bootstrap を簡単に使用できます。Bootstrap のすべての静的ファイルを提供するだけでなく、Bootstrap HTML を迅速に生成するのに役立ついくつかの Jinja2 テンプレート マクロも提供します。

pip を使用して Flask-Bootstrap をインストールできます。

pip install flask_bootstrap

8.2 ブートストラップの使用

Flask-Bootstrap をインストールした後、テンプレート内でbootstrap.load_css()と を使用してbootstrap.load_js()、Bootstrap の CSS と JavaScript をロードできます。マクロを使用して、ブートストラップ スタイルのフォームをすばやく生成することもできますbootstrap.quick_form()

ブートストラップを使用したテンプレートの例を次に示します。

{% extends "bootstrap/base.html" %}

{% block title %}My App{% endblock %}

{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <a class="navbar-brand" href="{
   
   { url_for('index') }}">My App</a>
        </div>
    </div>
</div>
{% endblock %}

{% block content %}
<div class="container">
    <h1>Welcome to My App!</h1>
    <form method="POST">
        {
   
   { bootstrap.quick_form(form) }}
    </form>
</div>
{% endblock %}

8.3 カスタムブートストラップ

Bootstrap にはプリセット スタイルが用意されていますが、ニーズに合わせて一部のスタイルをカスタマイズする必要がある場合があります。独自の CSS ファイルを作成し、この CSS ファイルをテンプレートにロードできます。

url_for関数を使用して静的ファイルの URL を生成できます。たとえば、CSS ファイルがstatic/cssディレクトリにある場合は、次のように CSS ファイルの URL を生成できます。

<link rel="stylesheet" href="{
   
   { url_for('static', filename='css/my.css') }}">

上記は、Flask-Bootstrap を使用して Web アプリケーションの美しさを向上させるための基本的な手順です。次に、Flask アプリケーションをデプロイする方法を学びます。

9 つの展開 Flask アプリケーション

これまでのところ、Web アプリケーションの開発は完了しました。次のステップは、より多くのユーザーがアクセスできるように、Web アプリケーションをサーバーにデプロイすることです。このセクションでは、Gunicorn と Nginx を使用して Flask アプリケーションをデプロイする方法を簡単に紹介します。

9.1 Gunicorn の導入とインストール

Gunicorn は Python WSGI HTTP サーバーであり、優れた同時実行機能を備えており、Python Web アプリケーションのホストに非常に適しています。

pip を使用して Gunicorn をインストールできます。

pip install gunicorn

9.2 Gunicorn を使用した Flask アプリケーションの実行

Gunicorn のコマンド ライン インターフェイスを使用して、Flask アプリケーションを実行できます。アプリケーションのインポート パスとポート番号を指定する必要があります。

Flask アプリケーションの実行例を次に示します。

gunicorn -w 4 -b 127.0.0.1:5000 myapp:app

この例では、-w 44 つのワーカー プロセスを使用することを意味し、アプリケーションのインポート パスである-b 127.0.0.1:5000ローカル ポート 5000 をリッスンすることを意味します。myapp:app

9.3 Nginxの導入とインストール

Nginx は、ロード バランサおよび HTTP キャッシュとして機能する高性能 HTTP およびリバース プロキシ サーバーです。ここでは、Nginx をリバース プロキシ サーバーとして使用して、ユーザーのリクエストを Gunicorn に転送します。

パッケージ マネージャーを使用して Nginx をインストールできます。たとえば、Ubuntu では apt を使用して Nginx をインストールできます。

 

sudo apt update
sudo apt install nginx

9.4 Nginxの構成

Nginx にリクエストの転送方法を指示するには、Nginx 構成ファイルを作成する必要があります。以下は構成ファイルの例です。

server {
    listen 80;
    server_name example.com;

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

この設定ファイルでは、listen 80;ポート 80 でリッスンすることを意味し、server_name example.com;サーバーの名前が であることを意味しexample.comproxy_pass http://127.0.0.1:5000;リクエストをローカル ポート 5000 に転送することを意味します。

上記は、Gunicorn と Nginx を使用して Flask アプリケーションをデプロイする基本的な手順です。実際の運用環境では、HTTPS を構成したり、プロセス マネージャーを使用して Gunicorn プロセスを管理したりする必要がある場合もあります。

これまでのところ、開発から展開までの全プロセスが完了しています。

おすすめ

転載: blog.csdn.net/a871923942/article/details/130577692