cari
Rumahpembangunan bahagian belakangTutorial PythonCara Membuat API RESTful dengan Flask dan Python

Como Criar APIs RESTful com Flask e Python

API RESTful adalah penting dalam pembangunan moden, membolehkan sistem yang berbeza berkomunikasi dengan cara yang cekap dan berskala. Python, dengan rangka kerja Flasknya, menawarkan pendekatan yang mudah dan berkuasa untuk mencipta API. Dalam panduan ini, kami akan meneroka cara membuat API RESTful menggunakan Flask, meliputi segala-galanya daripada asas kepada pengesahan dan penggunaan dengan klien HTTP.

Apakah itu API RESTful?

Sebelum kita mula dengan kod, adalah penting untuk memahami apa itu RESTful API. API (Application Programming Interface) ialah satu set peraturan yang membenarkan satu perisian untuk berkomunikasi dengan yang lain. Gaya REST (Pemindahan Negeri Perwakilan) mentakrifkan satu set prinsip yang mesti dipatuhi oleh API:

  • Pelayan-Pelanggan: Pemisahan antara pelanggan (yang menggunakan API) dan pelayan (yang menyediakan data).
  • Stateless: Setiap permintaan yang dibuat oleh pelanggan mesti mengandungi semua maklumat yang diperlukan untuk pelayan memproses.
  • Boleh Cache: Respons API boleh dicache untuk meningkatkan prestasi.
  • Antara Muka Seragam: Komunikasi antara klien dan pelayan mesti dilakukan dengan cara yang standard, menggunakan kaedah HTTP seperti GET, POST, PUT dan DELETE.

Mencipta API RESTful dengan Flask

Kini kami akan mencipta API mudah yang menguruskan senarai pengguna. API akan membolehkan anda menambah, mengedit, melihat dan memadam pengguna.

1. Memasang Kelalang

Pertama, pastikan anda telah memasang Flask. Jika tidak, anda boleh memasangnya menggunakan pip:

pip install Flask

2. Struktur Projek

Projek kami akan mempunyai struktur berikut:

/api_flask
│
├── app.py
└── requirements.txt

3. Mengkonfigurasi Flask

Dalam fail app.py, kami mulakan dengan mengimport perpustakaan yang diperlukan dan mengkonfigurasi aplikasi Flask kami:

from flask import Flask, jsonify, request

app = Flask(__name__)

# Dados simulados
users = [
    {'id': 1, 'name': 'Alice', 'email': 'alice@example.com'},
    {'id': 2, 'name': 'Bob', 'email': 'bob@example.com'}
]

4. Mencipta Titik Akhir

Sekarang, mari buat titik akhir kami untuk lihat, tambah, kemas kini dan padam pengguna.

4.1. Titik Akhir untuk Senarai Pengguna

Kami akan menggunakan kaedah GET untuk menyenaraikan semua pengguna:

@app.route('/users', methods=['GET'])
def get_users():
    return jsonify(users), 200

4.2. Titik Akhir untuk Mendapatkan Pengguna Tertentu

Kami akan menggunakan kaedah GET dengan ID pengguna untuk mendapatkan butiran pengguna tertentu:

@app.route('/users/<user_id>', methods=['GET'])
def get_user(user_id):
    user = next((user for user in users if user['id'] == user_id), None)
    if user:
        return jsonify(user), 200
    else:
        return jsonify({'message': 'User not found'}), 404
</user_id>

4.3. Titik Akhir untuk Mencipta Pengguna Baharu

Kaedah POST akan digunakan untuk menambah pengguna baharu. Pelanggan akan menghantar data dalam format JSON.

@app.route('/users', methods=['POST'])
def create_user():
    data = request.get_json()
    new_user = {
        'id': len(users) + 1,
        'name': data['name'],
        'email': data['email']
    }
    users.append(new_user)
    return jsonify(new_user), 201

4.4. Titik Akhir untuk Kemas Kini Pengguna

Di sini kami menggunakan kaedah PUT untuk mengemas kini data pengguna sedia ada:

@app.route('/users/<user_id>', methods=['PUT'])
def update_user(user_id):
    data = request.get_json()
    user = next((user for user in users if user['id'] == user_id), None)
    if user:
        user['name'] = data['name']
        user['email'] = data['email']
        return jsonify(user), 200
    else:
        return jsonify({'message': 'User not found'}), 404
</user_id>

4.5. Titik Akhir untuk Memadam Pengguna

Kami menggunakan kaedah DELETE untuk mengalih keluar pengguna:

@app.route('/users/<user_id>', methods=['DELETE'])
def delete_user(user_id):
    global users
    users = [user for user in users if user['id'] != user_id]
    return jsonify({'message': 'User deleted'}), 200
</user_id>

5. Menjalankan API

Sekarang, jalankan sahaja aplikasi kami:

if __name__ == '__main__':
    app.run(debug=True)

Menjalankan fail app.py, API kami akan tersedia di http://127.0.0.1:5000/users.

6. Pengesahan dengan Flask

Untuk menambah lapisan keselamatan pada API kami, kami boleh menggunakan JWT (JSON Web Token). Dengan JWT, kami boleh memastikan bahawa hanya pengguna yang disahkan boleh mengakses titik akhir tertentu.

6.1. Memasang Flask-JWT-Extended

Pasang sambungan yang diperlukan:

pip install Flask-JWT-Extended

6.2. Mengkonfigurasi JWT

Kemas kini fail app.py anda untuk menyertakan pengesahan JWT:

from flask_jwt_extended import JWTManager, create_access_token, jwt_required

app.config['JWT_SECRET_KEY'] = 'your-secret-key'  # Troque pela sua chave secreta
jwt = JWTManager(app)

# Login para obter o token
@app.route('/login', methods=['POST'])
def login():
    data = request.get_json()
    if data['username'] == 'admin' and data['password'] == 'admin':
        access_token = create_access_token(identity={'username': 'admin'})
        return jsonify(access_token=access_token), 200
    else:
        return jsonify({'message': 'Invalid credentials'}), 401

# Exemplo de endpoint protegido
@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
    return jsonify({'message': 'Access granted to protected endpoint'}), 200

Sekarang, apabila mengakses titik akhir /protected, anda perlu menghantar token JWT dalam pengepala permintaan untuk mengesahkan pengguna.

7. Menggunakan API dengan Klien HTTP

Untuk menggunakan API, kita boleh menggunakan alatan seperti Posmen atau perpustakaan seperti permintaan dalam Python.

Contoh cara menggunakan API menggunakan permintaan:

import requests

# Consumindo o endpoint de listagem de usuários
response = requests.get('http://127.0.0.1:5000/users')
print(response.json())

Kesimpulan

Mencipta API RESTful dengan Flask adalah mudah dan fleksibel. Flask menawarkan rangka kerja minimalis yang boleh dikembangkan untuk menyertakan ciri seperti pengesahan, pengendalian ralat dan lapisan keselamatan yang lain. Dengan mengikuti prinsip REST dan amalan pembangunan yang baik, adalah mungkin untuk membina API yang cekap dan berskala dengan Python.

Kini anda boleh membina API RESTful anda sendiri dengan Flask, menyesuaikan mengikut keperluan dan keperluan anda.

Atas ialah kandungan terperinci Cara Membuat API RESTful dengan Flask dan Python. 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
Python vs C: Lengkung pembelajaran dan kemudahan penggunaanPython vs C: Lengkung pembelajaran dan kemudahan penggunaanApr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python vs C: Pengurusan dan Kawalan MemoriPython vs C: Pengurusan dan Kawalan MemoriApr 19, 2025 am 12:17 AM

Python dan C mempunyai perbezaan yang signifikan dalam pengurusan dan kawalan memori. 1. Python menggunakan pengurusan memori automatik, berdasarkan pengiraan rujukan dan pengumpulan sampah, memudahkan kerja pengaturcara. 2.C memerlukan pengurusan memori manual, memberikan lebih banyak kawalan tetapi meningkatkan risiko kerumitan dan kesilapan. Bahasa mana yang harus dipilih harus berdasarkan keperluan projek dan timbunan teknologi pasukan.

Python untuk pengkomputeran saintifik: rupa terperinciPython untuk pengkomputeran saintifik: rupa terperinciApr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

Python dan C: Mencari alat yang betulPython dan C: Mencari alat yang betulApr 19, 2025 am 12:04 AM

Sama ada untuk memilih Python atau C bergantung kepada keperluan projek: 1) Python sesuai untuk pembangunan pesat, sains data, dan skrip kerana sintaks ringkas dan perpustakaan yang kaya; 2) C sesuai untuk senario yang memerlukan prestasi tinggi dan kawalan asas, seperti pengaturcaraan sistem dan pembangunan permainan, kerana kompilasi dan pengurusan memori manualnya.

Python untuk sains data dan pembelajaran mesinPython untuk sains data dan pembelajaran mesinApr 19, 2025 am 12:02 AM

Python digunakan secara meluas dalam sains data dan pembelajaran mesin, terutamanya bergantung pada kesederhanaannya dan ekosistem perpustakaan yang kuat. 1) PANDAS digunakan untuk pemprosesan dan analisis data, 2) Numpy menyediakan pengiraan berangka yang cekap, dan 3) SCIKIT-Learn digunakan untuk pembinaan dan pengoptimuman model pembelajaran mesin, perpustakaan ini menjadikan Python alat yang ideal untuk sains data dan pembelajaran mesin.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python untuk Pembangunan Web: Aplikasi UtamaPython untuk Pembangunan Web: Aplikasi UtamaApr 18, 2025 am 12:20 AM

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak

Python vs C: Meneroka Prestasi dan KecekapanPython vs C: Meneroka Prestasi dan KecekapanApr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa