Apakah cara terbaik untuk menapis respons API dalam Flask?

Jan 06, 2026Tinggalkan pesanan

Hey! Sebagai pembekal Kelalang Penapisan, saya telah mendapat banyak soalan sejak kebelakangan ini tentang cara terbaik untuk menapis respons API dalam Kelalang. Jadi, saya fikir saya akan berkongsi beberapa pandangan dan petua yang telah saya kumpulkan selama ini.

Mula-mula, mari kita bincangkan tentang maksud menapis respons API dalam Flask. Apabila anda membina API dalam Flask, anda selalunya mahu memulangkan subset data sahaja berdasarkan kriteria tertentu. Sebagai contoh, anda mungkin mempunyai pangkalan data produk dan anda mahu memulangkan produk yang ada dalam stok sahaja. Proses memilih dan mengembalikan data khusus ini ialah apa yang kami panggil penapisan.

Kini, terdapat beberapa cara untuk mencapai ini dalam Flask. Salah satu kaedah yang paling biasa ialah menggunakan parameter pertanyaan. Parameter pertanyaan ialah kunci - pasangan nilai yang boleh anda tambahkan pada penghujung URL. Katakan anda mempunyai titik akhir API untuk mendapatkan senarai pengguna. Anda boleh menambah parameter pertanyaan untuk menapis pengguna mengikut umur.

Berikut ialah contoh mudah laluan Flask dengan penapisan menggunakan parameter pertanyaan:

daripada Flask import Flask, permintaan, aplikasi jsonify = Flask(__name__) pengguna = [ {"id": 1, "name": "John", "age": 25}, {"id": 2, "name": "Jane", "age": 30}, {"id": 3, "name": "Doe", "age": 22} method=['GET']) def get_users(): age = request.args.get('age') if age: filtered_users = [pengguna untuk pengguna dalam pengguna jika pengguna['umur'] == int(umur)] return jsonify(filtered_users) return jsonify(pengguna) jika __name__ == '__main__'=T.run()debug

Dalam contoh ini, jika anda melawat/users?age=25dalam penyemak imbas anda atau buat permintaan GET ke URL ini, API hanya akan mengembalikan pengguna yang berumur 25 tahun. Ini adalah cara yang mudah untuk melaksanakan penapisan asas.

Walau bagaimanapun, untuk senario penapisan yang lebih kompleks, anda mungkin mahu menggunakan operasi pertanyaan pangkalan data. Jika anda menggunakan pangkalan data seperti SQLite, MySQL atau PostgreSQL dengan Flask, anda boleh menulis pertanyaan SQL untuk menapis data pada peringkat pangkalan data. Sebagai contoh, jika anda menggunakan SQLAlchemy (ORM yang popular untuk Flask), anda boleh melakukan sesuatu seperti ini:

daripada Flask import Flask, jsonify daripada flask_sqlalchemy import aplikasi SQLAlchemy = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] ='sqlite:///test.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Column(,db.Column(,db.Column) primary_key=True) name = db.Column(db.String(80)) age = db.Column(db.Integer) @app.route('/db_users', methods=['GET']) def get_db_users(): umur = request.args.get('age') jika umur:filter = Users. else: users = User.query.all() user_list = [{"id": user.id, "name": user.name, "age": user.age} untuk pengguna dalam pengguna] kembalikan jsonify(user_list) jika __name__ == '__main__': dengan app.app_context(): db.create_all() app.run(debug=True)

Kod ini menggunakan SQLAlchemy untuk berinteraksi dengan pangkalan data SQLite. Thepenapis_olehkaedah membolehkan anda menapispenggunaobjek berdasarkanumuratribut.

Pendekatan lain ialah menggunakan perisian tengah. Middleware dalam Flask ialah kod yang dijalankan sebelum atau selepas fungsi paparan. Anda boleh membuat perisian tengah tersuai untuk melaksanakan operasi penapisan. Sebagai contoh, anda boleh membuat perisian tengah yang menyemak parameter pertanyaan dan menapis data respons dengan sewajarnya.

daripada Flask import Flask, request, aplikasi jsonify = Flask(__name__) pengguna = [ {"id": 1, "name": "John", "age": 25}, {"id": 2, "name": "Jane", "age": 30}, {"id": 3, "name": "Doe", "age": 22}_foruser" request.endpoint == 'get_users': age = request.args.get('age') if age: global users users = [pengguna untuk pengguna dalam pengguna jika pengguna['umur'] == int(umur)] @app.route('/users_middleware', method=['GET']) def get_users(): return jsonify(users '__main__name'__ app.run(debug=True)

Dalam contoh ini,before_requestmiddleware menyemak sama ada titik akhir yang diminta adalahget_users. Jika ya, ia menapispenggunasenarai berdasarkanumurparameter pertanyaan.

Clear glass Filtering FlaskLaboratory Filtering Flask

Sekarang, mari kita bercakap sedikit tentang produk Kelalang Penapisan kami. Kami menawarkan kelalang berkualiti tinggi yang penting untuk pelbagai aplikasi makmal. Sebagai contoh, kita adaKelalang Penapisan Kaca Jelas Makmal dengan Tubulatur Atas. Kelalang ini diperbuat daripada kaca jernih, yang membolehkan anda memantau proses penapisan dengan mudah.

Satu lagi produk hebat adalah kamiKelalang Penapis Erlenmeyer Kaca Makmal Bentuk Kon dengan Tiub Atas. Bentuk kon bagi kelalang ini memberikan kestabilan yang lebih baik semasa proses penapisan, dan tiub atas memudahkan untuk menyambungkan peralatan makmal lain.

Jika anda berminat untuk membina API yang cekap dengan penapisan tindak balas yang betul dalam Kelalang atau memerlukan Kelalang Penapisan berkualiti tinggi untuk makmal anda, kami sedia membantu. Sama ada anda seorang pembangun yang ingin mengoptimumkan API anda atau seorang saintis yang memerlukan perisian makmal yang boleh dipercayai, kami boleh memberikan anda penyelesaian yang anda perlukan. Hubungi kami untuk perbincangan perolehan dan mari bekerjasama untuk mencari yang paling sesuai untuk keperluan anda.

Rujukan

  • Dokumentasi Kelalang
  • Dokumentasi SQLAlchemy