ホームページ  >  記事  >  バックエンド開発  >  Python Flask を使用して API 関数を構築するにはどうすればよいですか?

Python Flask を使用して API 関数を構築するにはどうすればよいですか?

PHPz
PHPz転載
2023-04-21 20:49:061608ブラウズ

1. 概要

Python Flask は、Web アプリケーションを作成するための使いやすい API を提供する軽量の Web フレームワークです。 Flask では、Python 関数を使用して Web アプリケーションのルートとハンドラーを定義できます。

2. 共通関数の説明

以下は、いくつかの一般的な Python Flask API 関数です:

1) Flask() 関数

この関数は、 Flask アプリケーション 新しい Flask インスタンスを作成するために使用されるプログラムのコア。

from flask import Flask
app = Flask(__name__)

2)route() 関数

この関数は、ルーティングおよびリクエスト メソッドを指定するために使用されます。複数の route() 関数を使用して、複数のルートを定義できます。

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

3) jsonify() 関数

この関数は、Python オブジェクトを JSON 形式の応答オブジェクトに変換できます。

from flask import jsonify
@app.route('/users')
def get_users():
    users = [
        {'name': 'Alice', 'age': 25},
        {'name': 'Bob', 'age': 30},
        {'name': 'Charlie', 'age': 35}
    ]
    return jsonify(users)

4) render_template() 関数

この関数は、テンプレートをレンダリングし、HTML 応答オブジェクトを返すために使用されます。テンプレート エンジンを使用して HTML を動的に生成できます。

from flask import render_template
@app.route(&#39;/profile/<username>&#39;)
def profile(username):
    return render_template(&#39;profile.html&#39;, name=username)

5) redirect() 関数

この関数は、リクエストを別の URL にリダイレクトできます。

from flask import redirect
@app.route(&#39;/redirect&#39;)
def redirect_to_home():
    return redirect(&#39;/&#39;)

6) url_for() 関数

この関数は URL の生成に使用され、ビュー関数の名前をパラメーターとして使用できます。

from flask import url_for
@app.route(&#39;/profile/<username>&#39;)
def profile(username):
    return f&#39;Hello, {username}! Your profile URL is {url_for("profile", username=username)}.&#39;

7) before_request() 関数

この関数は、各リクエストの前に実行される関数を登録するために使用されます。

@app.before_request
def before_request():
    if &#39;user_id&#39; not in session and request.endpoint not in [&#39;login&#39;, &#39;static&#39;]:
        return redirect(url_for(&#39;login&#39;))

8) after_request() 関数

この関数は、各リクエストの後に実行される関数を登録するために使用されます。

@app.after_request
def after_request(response):
    response.headers[&#39;X-Frame-Options&#39;] = &#39;SAMEORIGIN&#39;
    return response

9) abort() 関数

この関数は、ビュー関数で例外を発生させ、エラー応答を返すために使用されます。

from flask import abort
@app.route(&#39;/users/<int:user_id>&#39;)
def get_user(user_id):
    user = User.query.get(user_id)
    if user is None:
        abort(404)
    return jsonify(user.to_dict())

10) send_file() 関数

この関数は、ファイルを応答として送信するために使用され、ファイルはバイト ストリームまたはファイル パスとして送信できます。

from flask import send_file
@app.route(&#39;/download&#39;)
def download_file():
    file_path = &#39;/path/to/file&#39;
    return send_file(file_path, as_attachment=True)

3. 共通オブジェクトの説明

1) リクエスト オブジェクト

このオブジェクトは、リクエスト ヘッダー、リクエスト本文、その他の情報を含む、クライアントによって発行されたリクエストを表します。 request オブジェクトを使用して、クライアントから送信されたデータを取得できます。

from flask import request
@app.route(&#39;/login&#39;, methods=[&#39;POST&#39;])
def login():
    username = request.form[&#39;username&#39;]
    password = request.form[&#39;password&#39;]
    return f&#39;Hello, {username}! Your password is {password}.&#39;

2) セッション オブジェクト

このオブジェクトは、ユーザー ID などのユーザー セッション データを保存するために使用できます。

from flask import session
@app.route(&#39;/login&#39;, methods=[&#39;POST&#39;])
def login():
    username = request.form[&#39;username&#39;]
    password = request.form[&#39;password&#39;]
    if username == &#39;admin&#39; and password == &#39;password&#39;:
        session[&#39;user_id&#39;] = 1
        return redirect(&#39;/&#39;)
    else:
        return &#39;Invalid username or password.&#39;

4. Flask の Cookie とセッション

1) Cookie とセッションの概要と違い

Flask では、Cookie とセッションはユーザー ステータスのメカニズムを追跡するために使用されます。

Cookie は小さなテキスト データです。ユーザーが Web サイトにアクセスすると、サーバーは cookie を設定することでユーザーのコンピュータにデータを保存できます。ユーザーが再度 Web サイトにアクセスすると、ブラウザーは cookie データをサーバーに送信し、サーバーがそのデータを使用してユーザーを識別できるようにします。 Flask は Flask-Cookie を使用して cookies を処理します。これは cookies の設定、取得、削除に使用できます。

Session はサーバー側に保存される一種の状態データであり、Cookie とは異なり、Session データはユーザーのコンピュータには保存されません。ですが、サーバー側に保存されます。ユーザーが Web サイトにアクセスすると、サーバーはユーザーに一意の セッション ID を作成し、IDcookie に保存します。その後、サーバーはこの セッションIDでユーザーを識別します。 Flask は、Flask-Session を使用して Session を処理します。これは、Session データの設定、取得、削除に使用できます。

一般的に、データはサーバー側に保存され、ユーザーはデータを直接変更できないため、Session の方が安全です。 Cookie 利点は、大量のデータを保存でき、異なるページ間で共有できることです。実際の使用では、開発者は必要に応じて Cookie または Session の使用を選択できます。

以下は Flask で Cookie とセッションを使用する例です:

2) 例の説明

1. Flask-Cookie を使用して Cookie を設定します
from flask import Flask, make_response
app = Flask(__name__)
@app.route(&#39;/&#39;)
def index():
    response = make_response(&#39;Hello, World!&#39;)
    response.set_cookie(&#39;name&#39;, &#39;value&#39;)
    return response
if __name__ == &#39;__main__&#39;:
    app.run()

In 上の例では、Flask の make_response 関数を使用して応答オブジェクトを作成し、その後 set_cookie メソッドを使用して # 名前付きの名前を value の値で設定します。 ### ##クッキー###。 2. Flask-Cookie を使用して Cookie を取得します

from flask import Flask, request
app = Flask(__name__)
@app.route(&#39;/&#39;)
def index():
    name = request.cookies.get(&#39;name&#39;)
    return f&#39;Hello, {name}!&#39;
if __name__ == &#39;__main__&#39;:
    app.run()

上の例では、Flask の
request
オブジェクトを使用して

name という名前の Cookie を取得します。 cookie の値をユーザーに返します。 3. Flask-Session を使用してセッションを設定および取得する

from flask import Flask, session
app = Flask(__name__)
app.config[&#39;SECRET_KEY&#39;] = &#39;your_secret_key&#39;
@app.route(&#39;/&#39;)
def index():
    session[&#39;name&#39;] = &#39;value&#39;
    name = session.get(&#39;name&#39;)
    return f&#39;Hello, {name}!&#39;
if __name__ == &#39;__main__&#39;:
    app.run()

上の例では、Flask のセッション オブジェクトを使用して、値 value を持つ name という名前のセッションを設定し、get メソッドを使用します。セッションの値を取得してユーザーに返します。
Flask-Session

を使用するには、アプリケーションに

SECRET_KEY

を設定する必要があることに注意してください。このキーは、Session データを暗号化し、データが改ざんされないようにするために使用されます。

以上がPython Flask を使用して API 関数を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。