Flask ialah salah satu rangka kerja mikro yang paling popular untuk membina aplikasi web dalam Python, dan kebanyakan kuasanya datang daripada penggunaan penghias. Penghias ini membolehkan anda menyambung ke fungsi rangka kerja dengan cara yang bersih dan boleh dibaca, tanpa mengacaukan kod anda. Dalam siaran ini, kami akan meneroka lima penghias Flask yang paling biasa digunakan, serta dua sebutan kehormat.
1 @app.route()
Penghias @app.route() digunakan untuk menentukan penghalaan URL untuk apl Flask anda. Ia mengikat URL pada fungsi Python yang mengendalikan logik untuk laluan itu.
Contoh:
@app.route('/')
def home():
kembali "Selamat datang ke halaman utama!"
Contoh mudah ini memetakan URL akar (/) ke fungsi home(), mengembalikan mesej alu-aluan kepada pelawat.
2 @app.before_request()
Penghias ini menjalankan fungsi sebelum setiap permintaan. Ia sesuai untuk menyemak pengesahan, memulakan pembolehubah atau menyediakan sumber.
Contoh:
@app.before_request
def check_authentication():
jika bukan pengguna_ada_log masuk():
kembalikan "Sila log masuk", 401
Dalam kes ini, fungsi menyemak sama ada pengguna disahkan sebelum membenarkan mereka meneruskan.
3 @app.after_request()
Penghias @app.after_request() membenarkan anda mengubah suai respons selepas permintaan telah diproses tetapi sebelum ia dihantar kepada pelanggan. Ini selalunya digunakan untuk tugasan seperti menambah pengepala atau mengelog respons.
Contoh:
@app.after_request
def add_security_headers(respons):
response.headers['X-Content-Type-Options'] = 'nosniff'
membalas respons
Di sini, pengepala keselamatan ditambahkan pada setiap respons.
4 @app.errorhandler()
Pengendalian ralat adalah penting untuk mana-mana apl web. Penghias @app.errorhandler() membolehkan anda menentukan gelagat tersuai untuk kod status HTTP tertentu, seperti 404 Not Found.
Contoh:
@app.errorhandler(404)
def page_not_found(e):
kembalikan "Op! Halaman tidak ditemui.", 404
Pengendali tersuai ini mengembalikan mesej mesra pengguna apabila ralat 404 berlaku.
5 @app.teardown_request()
Digunakan untuk membersihkan selepas permintaan, @app.teardown_request() memastikan sumber seperti sambungan pangkalan data ditutup dengan betul.
Contoh:
@app.teardown_request
def close_db_connection(exception=None):
db_session.remove()
Di sini, sesi pangkalan data ditutup selepas setiap permintaan, walaupun pengecualian telah dibangkitkan semasa pemprosesan permintaan.
Sebutan Yang Berhormat
Walaupun penghias ini tidak selalu digunakan sekerap, ia boleh menjadi sangat berguna dalam kes tertentu:
@app.before_first_request()
Penghias ini digunakan untuk melaksanakan fungsi sebelum permintaan pertama dikendalikan. Ia sesuai untuk memulakan sumber global, seperti sambungan pangkalan data atau konfigurasi pemuatan.
@app.before_first_request
def initialize_db():
db.connect()
@app.context_processor()
Jika anda perlu menyuntik pembolehubah ke dalam semua templat Jinja2 anda secara global, gunakan penghias @app.context_processor(). Ini menjadikan nilai seperti konfigurasi pengguna atau apl semasa tersedia dalam setiap templat.
@app.context_processor
def inject_user():
return dict(current_user=get_current_user())
Dengan ini, current_user tersedia dalam semua templat anda tanpa perlu menghantarnya secara manual setiap kali.
Membungkus
Penghias kelalang memudahkan untuk mengurus kitaran hayat permintaan web, menyesuaikan gelagat dan melanjutkan fungsi. Memahami cara dan masa untuk menggunakan penghias biasa ini akan membantu memastikan kod Flask anda bersih, boleh diselenggara dan berkuasa. Adakah kami terlepas mana-mana penghias kegemaran anda? Beritahu kami!
Sumber
API Kelalang
Penghalaan Kelalang
Pengendalian Ralat Kelalang
Cangkuk Permintaan Kelalang
Pemproses Konteks Kelalang
Kelalang Sebelum Permintaan Pertama
Atas ialah kandungan terperinci Ost Penghias Kelalang Terpakai Teratas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!