Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membina fungsi API menggunakan Flask Python?

Bagaimana untuk membina fungsi API menggunakan Flask Python?

PHPz
PHPzke hadapan
2023-04-21 20:49:061608semak imbas

1. Gambaran Keseluruhan

Python Flask ialah rangka kerja web ringan yang menyediakan API yang mudah digunakan untuk membuat aplikasi web. Dalam Flask, kita boleh menggunakan fungsi Python untuk menentukan laluan dan pengendali untuk aplikasi web kita.

2. Penjelasan tentang fungsi biasa

Berikut ialah beberapa fungsi API Flask Python yang biasa:

1) Fungsi Flask()

Fungsi ini ialah Aplikasi Flask Teras program, digunakan untuk mencipta contoh Flask baharu.

from flask import Flask
app = Flask(__name__)

2) fungsi route()

Fungsi ini digunakan untuk menentukan kaedah penghalaan dan permintaan. Berbilang laluan boleh ditakrifkan menggunakan berbilang fungsi route().

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

3) fungsi jsonify()

Fungsi ini boleh menukar objek Python kepada objek tindak balas dalam format 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) fungsi render_template()

Fungsi ini digunakan untuk memaparkan templat dan mengembalikan objek respons HTML. Enjin templat boleh digunakan untuk menjana HTML secara dinamik.

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

5) fungsi redirect()

Fungsi ini boleh mengubah hala permintaan ke URL lain.

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

6) fungsi url_for()

Fungsi ini digunakan untuk menjana URL dan boleh menggunakan nama fungsi paparan sebagai parameter.

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) fungsi before_request()

Fungsi ini digunakan untuk mendaftarkan fungsi yang akan dilaksanakan sebelum setiap permintaan.

@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() function

Fungsi ini digunakan untuk mendaftarkan fungsi yang akan dilaksanakan selepas setiap permintaan.

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

9) abort() function

Fungsi ini digunakan untuk menaikkan pengecualian dalam fungsi paparan dan mengembalikan respons ralat.

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) fungsi send_file()

Fungsi ini digunakan untuk menghantar fail sebagai respons Fail boleh dihantar sebagai aliran bait atau laluan fail.

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. Penjelasan tentang objek biasa

1) objek permintaan

Objek ini mewakili permintaan yang dikeluarkan oleh klien, termasuk pengepala permintaan, badan permintaan dan maklumat lain . Anda boleh menggunakan objek request untuk mendapatkan data yang dihantar oleh pelanggan.

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) objek sesi

Objek ini boleh digunakan untuk menyimpan data sesi pengguna, seperti ID pengguna, dsb.

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 Kuki dan sesi dalam Flask

1) Pengenalan dan perbezaan antara kuki dan sesi

Dalam Flask, kuki dan sesi kedua-duanya digunakan untuk menjejak status Pengguna mekanisme.

Cookie ialah sekeping kecil data teks Apabila pengguna melawat tapak web anda, pelayan boleh menyimpan beberapa data pada komputer pengguna dengan menetapkan cookie. Apabila pengguna melawat tapak web sekali lagi, penyemak imbas menghantar cookie data ke pelayan supaya pelayan boleh menggunakan data untuk mengenal pasti pengguna. Flask menggunakan Flask-Cookie untuk mengendalikan cookies, yang boleh digunakan untuk menetapkan, mendapatkan dan memadam cookies.

Session ialah sejenis data keadaan yang disimpan di bahagian pelayan. Tidak seperti Cookie, Session data tidak akan disimpan pada komputer pengguna, tetapi di bahagian pelayan. Apabila pengguna melawat tapak web anda, pelayan mencipta Session ID unik untuk pengguna tersebut dan menyimpan ID dalam cookie, yang kemudiannya digunakan oleh pelayan untuk mengenal pasti pengguna. Flask menggunakan Session ID untuk mengendalikan Flask-Session, yang membolehkan anda menetapkan, mendapatkan dan memadam Session data. Session

Secara umumnya,

lebih selamat kerana data disimpan di bahagian pelayan dan pengguna tidak boleh mengubah suai data secara langsung. Kelebihan Session ialah ia boleh menyimpan sejumlah besar data dan boleh dikongsi antara halaman yang berbeza. Dalam penggunaan sebenar, pembangun boleh memilih untuk menggunakan Cookie atau Cookie mengikut keperluan. Session

Berikut ialah contoh penggunaan Kuki dan Sesi dalam Kelalang:

2) Contoh penjelasan

1 Gunakan Kuki-Kelalang untuk menetapkan kuki
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()
Dalam contoh di atas, kami menggunakan fungsi

Flask untuk mencipta objek tindak balas, dan kemudian gunakan kaedah make_response untuk menetapkan nama bernama set_cookie dengan nilai value. cookie

2. Gunakan Flask-Cookie untuk mendapatkan 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()
Dalam contoh di atas, kami menggunakan objek

Flask untuk mendapatkan nilai request bernama name , dan kemudian mengembalikannya kepada pengguna. cookie

3. Gunakan Flask-Session untuk menetapkan dan mendapatkan Sesi
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()
Dalam contoh di atas, kami menggunakan objek sesi Flask untuk menyediakan nama Sesi dengan nilai dapatkan kaedah untuk mendapatkan nilai Sesi, dan kemudian kembalikan kepada pengguna.

Adalah penting untuk ambil perhatian bahawa untuk menggunakan

, Flask-Session perlu disediakan dalam aplikasi. Kunci ini digunakan untuk menyulitkan SECRET_KEY data untuk memastikan data tersebut tidak diusik. Session

Atas ialah kandungan terperinci Bagaimana untuk membina fungsi API menggunakan Flask Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam