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 /
,通过访问根路由,可以返回一条简单的消息“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/
的路由,并接受两个查询参数 name
和 age
。我们可以同时根据这两个查询参数进行数据筛选,从而实现更加灵活的查询操作。
四、使用默认值和校验
FastAPI 还支持为查询参数设置默认值,并进行校验。例如,我们可以为 age
查询参数设置默认值为 20
,并且限制 age
的取值范围在 10
到 50
之间:
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
,并使用 ge
和 le
参数对 age
进行了校验。这样,当请求中不指定 age
查询参数时,会自动使用默认值 20
;而当指定 age
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
/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!