


Bagaimana untuk membina fungsi API menggunakan Flask Python?
Apr 21, 2023 pm 08:49 PM1. 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('/profile/<username>') def profile(username): return render_template('profile.html', name=username)
5) fungsi redirect()
Fungsi ini boleh mengubah hala permintaan ke URL lain.
from flask import redirect @app.route('/redirect') def redirect_to_home(): return redirect('/')
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('/profile/<username>') def profile(username): return f'Hello, {username}! Your profile URL is {url_for("profile", username=username)}.'
7) fungsi before_request()
Fungsi ini digunakan untuk mendaftarkan fungsi yang akan dilaksanakan sebelum setiap permintaan.
@app.before_request def before_request(): if 'user_id' not in session and request.endpoint not in ['login', 'static']: return redirect(url_for('login'))
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['X-Frame-Options'] = 'SAMEORIGIN' return response
9) abort() function
Fungsi ini digunakan untuk menaikkan pengecualian dalam fungsi paparan dan mengembalikan respons ralat.
from flask import abort @app.route('/users/<int:user_id>') 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('/download') def download_file(): file_path = '/path/to/file' 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('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] return f'Hello, {username}! Your password is {password}.'
2) objek sesi
Objek ini boleh digunakan untuk menyimpan data sesi pengguna, seperti ID pengguna, dsb.
from flask import session @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] if username == 'admin' and password == 'password': session['user_id'] = 1 return redirect('/') else: return 'Invalid username or password.'
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
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
from flask import Flask, make_response app = Flask(__name__) @app.route('/') def index(): response = make_response('Hello, World!') response.set_cookie('name', 'value') return response if __name__ == '__main__': 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
from flask import Flask, request app = Flask(__name__) @app.route('/') def index(): name = request.cookies.get('name') return f'Hello, {name}!' if __name__ == '__main__': app.run()Dalam contoh di atas, kami menggunakan objek
Flask untuk mendapatkan nilai request
bernama name
, dan kemudian mengembalikannya kepada pengguna. cookie
from flask import Flask, session app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key' @app.route('/') def index(): session['name'] = 'value' name = session.get('name') return f'Hello, {name}!' if __name__ == '__main__': 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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kunci untuk menangani pengesahan API adalah untuk memahami dan menggunakan kaedah pengesahan dengan betul. 1. Apikey adalah kaedah pengesahan yang paling mudah, biasanya diletakkan dalam tajuk permintaan atau parameter URL; 2. BasicAuth menggunakan nama pengguna dan kata laluan untuk penghantaran pengekodan Base64, yang sesuai untuk sistem dalaman; 3. OAuth2 perlu mendapatkan token terlebih dahulu melalui client_id dan client_secret, dan kemudian bawa bearertoken dalam header permintaan; 4. Untuk menangani tamat tempoh token, kelas pengurusan token boleh dikemas dan secara automatik menyegarkan token; Singkatnya, memilih kaedah yang sesuai mengikut dokumen dan menyimpan maklumat utama adalah kunci.

Untuk menguji API, anda perlu menggunakan Perpustakaan Permintaan Python. Langkah -langkahnya adalah untuk memasang perpustakaan, menghantar permintaan, mengesahkan respons, menetapkan masa dan cuba semula. Pertama, pasang perpustakaan melalui PipinstallRequests; kemudian gunakan permintaan.get () atau requests.post () dan kaedah lain untuk menghantar permintaan GET atau pos; Kemudian semak respons.status_code dan response.json () untuk memastikan hasil pulangan mematuhi jangkaan; Akhirnya, tambah parameter tamat masa untuk menetapkan masa tamat, dan menggabungkan perpustakaan semula untuk mencapai percubaan automatik untuk meningkatkan kestabilan.

Dalam Python, pembolehubah yang ditakrifkan di dalam fungsi adalah pembolehubah tempatan dan hanya sah dalam fungsi; Ditakrifkan secara luaran adalah pembolehubah global yang boleh dibaca di mana sahaja. 1. Pembolehubah tempatan dimusnahkan kerana fungsi dilaksanakan; 2. Fungsi ini boleh mengakses pembolehubah global tetapi tidak dapat diubahsuai secara langsung, jadi kata kunci global diperlukan; 3. Jika anda ingin mengubah suai pembolehubah fungsi luar dalam fungsi bersarang, anda perlu menggunakan kata kunci nonlocal; 4. Pembolehubah dengan nama yang sama tidak mempengaruhi satu sama lain dalam skop yang berbeza; 5. Global mesti diisytiharkan apabila mengubah suai pembolehubah global, jika tidak, kesilapan unboundlocalerror akan dibangkitkan. Memahami peraturan ini membantu mengelakkan pepijat dan menulis lebih banyak fungsi yang boleh dipercayai.

Untuk mewujudkan API moden dan cekap menggunakan Python, FastAPI disyorkan; Ia berdasarkan kepada jenis python standard yang diminta dan secara automatik dapat menghasilkan dokumen, dengan prestasi yang sangat baik. Selepas memasang FastAPI dan Asgi Server UVicorn, anda boleh menulis kod antara muka. Dengan menentukan laluan, menulis fungsi pemprosesan, dan data yang kembali, API boleh dibina dengan cepat. FastAPI menyokong pelbagai kaedah HTTP dan menyediakan sistem dokumentasi Swaggersui dan Redoc yang dihasilkan secara automatik. Parameter URL boleh ditangkap melalui definisi laluan, manakala parameter pertanyaan boleh dilaksanakan dengan menetapkan nilai lalai untuk parameter fungsi. Penggunaan rasional model Pydantic dapat membantu meningkatkan kecekapan dan ketepatan pembangunan.

Tambah kawalan tamat masa ke Python untuk gelung. 1. Anda boleh merakam masa mula dengan modul masa, dan menilai sama ada ia ditetapkan dalam setiap lelaran dan menggunakan rehat untuk melompat keluar dari gelung; 2. Untuk mengundi tugas kelas, anda boleh menggunakan gelung sementara untuk memadankan penghakiman masa, dan menambah tidur untuk mengelakkan kepenuhan CPU; 3. Kaedah lanjutan boleh mempertimbangkan threading atau isyarat untuk mencapai kawalan yang lebih tepat, tetapi kerumitannya tinggi, dan tidak disyorkan untuk pemula memilih; Ringkasan Mata Utama: Penghakiman masa manual adalah penyelesaian asas, sementara lebih sesuai untuk tugas kelas menunggu masa yang terhad, tidur sangat diperlukan, dan kaedah lanjutan sesuai untuk senario tertentu.

Bagaimana cara mengendalikan fail JSON yang besar di Python? 1. Gunakan Perpustakaan IJSON untuk mengalir dan mengelakkan limpahan memori melalui parsing item demi item; 2. Jika dalam format Jsonlines, anda boleh membacanya dengan garis dan memprosesnya dengan json.loads (); 3. Atau memecah fail besar ke dalam kepingan kecil dan kemudian memprosesnya secara berasingan. Kaedah ini dengan berkesan menyelesaikan masalah batasan memori dan sesuai untuk senario yang berbeza.

Di Python, kaedah melintasi tupel dengan gelung termasuk secara langsung melelehkan unsur -unsur, mendapatkan indeks dan elemen pada masa yang sama, dan memproses tuple bersarang. 1. Gunakan gelung untuk terus mengakses setiap elemen dalam urutan tanpa menguruskan indeks; 2. Gunakan penghitungan () untuk mendapatkan indeks dan nilai pada masa yang sama. Indeks lalai adalah 0, dan parameter permulaan juga boleh ditentukan; 3. Di samping itu, tuple tidak berubah dan kandungan tidak dapat diubah suai dalam gelung. Nilai yang tidak diingini boleh diabaikan oleh \ _. Adalah disyorkan untuk memeriksa sama ada tuple kosong sebelum melintasi untuk mengelakkan kesilapan.

Parameter lalai Python dinilai dan nilai tetap apabila fungsi ditakrifkan, yang boleh menyebabkan masalah yang tidak dijangka. Menggunakan objek berubah -ubah seperti senarai sebagai parameter lalai akan mengekalkan pengubahsuaian, dan disyorkan untuk menggunakan tiada sebaliknya; Skop parameter lalai adalah pembolehubah persekitaran apabila ditakrifkan, dan perubahan pembolehubah berikutnya tidak akan menjejaskan nilai mereka; Elakkan bergantung pada parameter lalai untuk menyelamatkan keadaan, dan keadaan enkapsulasi kelas harus digunakan untuk memastikan konsistensi fungsi.
