Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan parameter pertanyaan untuk menapis data dalam FastAPI

Cara menggunakan parameter pertanyaan untuk menapis data dalam FastAPI

PHPz
PHPzasal
2023-07-30 11:05:151384semak imbas

Cara menggunakan parameter pertanyaan untuk menapis data dalam FastAPI

Pengenalan:
FastAPI ialah rangka kerja web moden, pantas (berprestasi tinggi) berdasarkan Python. Ia mudah digunakan dan berfungsi dengan baik. Artikel ini akan memperkenalkan cara menggunakan parameter pertanyaan untuk menapis data dalam FastAPI untuk mencapai pertanyaan data yang fleksibel.

1 Mulakan aplikasi FastAPI
Pertama, kita perlu mencipta aplikasi FastAPI dan mulakannya, seperti yang ditunjukkan di bawah:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello, FastAPI!"}

Dalam kod di atas, kami mencipta aplikasi FastAPI dan menentukan laluan akar /code>, dengan mengakses laluan akar, mesej ringkas "Hello, FastAPI!" /,通过访问根路由,可以返回一条简单的消息“Hello, FastAPI!”。

二、使用查询参数进行数据筛选
在 FastAPI 中,我们可以使用 Query 类型的参数来接收查询参数。下面是一个例子,演示如何使用查询参数进行数据筛选:

from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/users/")
async def get_users(name: str = Query(None)):
    if name:
        # 根据查询参数 name 进行数据筛选
        result = db.query().filter(User.name == name).all()
    else:
        # 若没有查询参数,则返回所有的用户数据
        result = db.query().all()
    return {"users": result}

在上述代码中,我们定义了一个 /users/ 的路由,通过访问这个路由,可以获取用户数据。该路由接受一个查询参数 name,用于筛选指定名称的用户数据。如果查询参数 name 存在,我们就使用该参数进行数据筛选;否则,返回所有的用户数据。

三、多个查询参数同时使用
在实际场景中,我们可能需要同时根据多个查询参数进行数据筛选。下面是一个示例,演示如何同时使用多个查询参数进行数据筛选:

from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/users/")
async def get_users(name: str = Query(None), age: int = Query(None)):
    query = db.query()

    if name:
        query = query.filter(User.name == name)

    if age:
        query = query.filter(User.age == age)

    result = query.all()

    return {"users": result}

在上述代码中,我们定义了一个 /users/ 的路由,并接受两个查询参数 nameage。我们可以同时根据这两个查询参数进行数据筛选,从而实现更加灵活的查询操作。

四、使用默认值和校验
FastAPI 还支持为查询参数设置默认值,并进行校验。例如,我们可以为 age 查询参数设置默认值为 20,并且限制 age 的取值范围在 1050 之间:

from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/users/")
async def get_users(name: str = Query(None), age: int = Query(20, ge=10, le=50)):
    query = db.query()

    if name:
        query = query.filter(User.name == name)

    query = query.filter(User.age == age)

    result = query.all()

    return {"users": result}

在上述代码中,我们通过指定 age 查询参数的默认值为 20,并使用 gele 参数对 age 进行了校验。这样,当请求中不指定 age 查询参数时,会自动使用默认值 20;而当指定 age

2. Gunakan parameter pertanyaan untuk penapisan data

Dalam FastAPI, kami boleh menggunakan parameter jenis Query untuk menerima parameter pertanyaan. Berikut ialah contoh yang menunjukkan cara menggunakan parameter pertanyaan untuk penapisan data:
rrreee

Dalam kod di atas, kami mentakrifkan laluan /users/ Dengan mengakses laluan ini, data pengguna boleh diperolehi. Laluan ini menerima parameter pertanyaan name, yang digunakan untuk menapis data pengguna dengan nama yang ditentukan. Jika parameter pertanyaan name wujud, kami akan menggunakan parameter ini untuk penapisan data jika tidak, semua data pengguna akan dikembalikan. 🎜🎜3 Gunakan berbilang parameter pertanyaan pada masa yang sama🎜Dalam senario sebenar, kami mungkin perlu menapis data berdasarkan berbilang parameter pertanyaan pada masa yang sama. Berikut ialah contoh yang menunjukkan cara menggunakan berbilang parameter pertanyaan pada masa yang sama untuk penapisan data: 🎜rrreee🎜 Dalam kod di atas, kami mentakrifkan laluan ke /users/ dan menerima dua parameter pertanyaan nama dan umur. Kami boleh menapis data berdasarkan dua parameter pertanyaan ini pada masa yang sama untuk mencapai operasi pertanyaan yang lebih fleksibel. 🎜🎜4. Gunakan nilai lalai dan pengesahan🎜FastAPI juga menyokong tetapan nilai lalai untuk parameter pertanyaan dan melaksanakan pengesahan. Sebagai contoh, kita boleh menetapkan nilai lalai untuk parameter pertanyaan umur kepada 20 dan mengehadkan julat nilai umur kepada 10 antara 50: 🎜rrreee🎜Dalam kod di atas, kami menentukan nilai lalai parameter pertanyaan age sebagai 20 dan gunakan Parameter ge dan le mengesahkan umur. Dengan cara ini, apabila parameter pertanyaan age tidak dinyatakan dalam permintaan, nilai lalai 20 akan digunakan secara automatik dan apabila age; parameter pertanyaan ditentukan, nilai lalai akan digunakan. 🎜🎜Kesimpulan: 🎜Melalui kod sampel di atas, kami telah mempelajari cara menggunakan parameter pertanyaan untuk penapisan data dalam FastAPI. Menggunakan parameter pertanyaan boleh menambah fleksibiliti pada aplikasi kami, membolehkan kami menapis data secara bebas mengikut keperluan khusus. Pada masa yang sama, FastAPI menyediakan pelbagai fungsi dan pilihan, menjadikan penggunaan parameter pertanyaan lebih berkuasa dan mudah. Saya harap artikel ini dapat membantu anda mempelajari dan menggunakan FastAPI. 🎜

Atas ialah kandungan terperinci Cara menggunakan parameter pertanyaan untuk menapis data dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn