Hướng dẫn: Tạo API quản lý danh bạ với FastAPI và SQLite trong Python

Python Nâng cao

0.0 (0 đánh giá)
Tạo bởi K9 Cập nhật lần cuối 20:59 04-12-2024 767 lượt xem 0 bình luận
Tác giả/Dịch giả: K9
Học nhanh

Danh sách bài học

Hướng dẫn: Tạo API quản lý danh bạ với FastAPI và SQLite trong Python

�� Hướng dẫn: Tạo API Quản lý Danh Bạ với FastAPI và SQLite trong Python

🔥 Bạn đã sẵn sàng học cách xây dựng một API đơn giản với Python?

Hôm nay, mình sẽ hướng dẫn các bạn sử dụng FastAPI để tạo một hệ thống quản lý danh bạ (Contact Manager) kết hợp với cơ sở dữ liệu SQLite. Đây là một dự án nhỏ nhưng rất thực tế để bạn hiểu cách làm việc với API và cơ sở dữ liệu.


1. Công cụ cần thiết

  • Python 3.9 hoặc cao hơn: Tải tại python.org.
  • FastAPI: Framework mạnh mẽ để xây dựng API.
  • SQLite: Cơ sở dữ liệu nhẹ tích hợp sẵn trong Python.
  • SQLAlchemy: Để làm việc với cơ sở dữ liệu dễ dàng hơn.
  • Uvicorn: Máy chủ ASGI để chạy ứng dụng FastAPI.

2. Cài đặt các thư viện

pip install fastapi uvicorn sqlalchemy sqlite3

3. Tạo cấu trúc dự án

Hãy tổ chức mã nguồn của bạn như sau:


contact_manager/
├── main.py          # File chính chứa API
├── models.py        # Định nghĩa cơ sở dữ liệu
├── database.py      # Cấu hình kết nối DB
└── requirements.txt # Liệt kê các thư viện cần thiết

4. Viết mã nguồn

(a) Định nghĩa cơ sở dữ liệu (models.py)


from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class Contact(Base):
    __tablename__ = "contacts"
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String, index=True)
    phone = Column(String, unique=True, index=True)
    email = Column(String, unique=True, index=True)

DATABASE_URL = "sqlite:///./contacts.db"
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base.metadata.create_all(bind=engine)

(b) Cấu hình kết nối cơ sở dữ liệu (database.py)


from sqlalchemy.orm import Session
from models import SessionLocal

def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

(c) Tạo API (main.py)


from fastapi import FastAPI, Depends, HTTPException
from sqlalchemy.orm import Session
from models import Contact, Base, engine
from database import get_db

app = FastAPI()

# Tạo danh bạ mới
@app.post("/contacts/")
def create_contact(name: str, phone: str, email: str, db: Session = Depends(get_db)):
    contact = Contact(name=name, phone=phone, email=email)
    db.add(contact)
    db.commit()
    db.refresh(contact)
    return contact

# Lấy danh sách danh bạ
@app.get("/contacts/")
def read_contacts(db: Session = Depends(get_db)):
    return db.query(Contact).all()

# Cập nhật danh bạ
@app.put("/contacts/{contact_id}")
def update_contact(contact_id: int, name: str, phone: str, email: str, db: Session = Depends(get_db)):
    contact = db.query(Contact).filter(Contact.id == contact_id).first()
    if not contact:
        raise HTTPException(status_code=404, detail="Contact not found")
    contact.name = name
    contact.phone = phone
    contact.email = email
    db.commit()
    return contact

# Xóa danh bạ
@app.delete("/contacts/{contact_id}")
def delete_contact(contact_id: int, db: Session = Depends(get_db)):
    contact = db.query(Contact).filter(Contact.id == contact_id).first()
    if not contact:
        raise HTTPException(status_code=404, detail="Contact not found")
    db.delete(contact)
    db.commit()
    return {"detail": "Contact deleted"}

5. Hướng dẫn chạy ứng dụng

  1. Chạy lệnh: uvicorn main:app --reload.
  2. Truy cập Swagger UI để thử nghiệm API.

6. Lời kết

Hệ thống API này là một ví dụ nhỏ nhưng đầy đủ để bạn bắt đầu với FastAPISQLite. Hãy thử triển khai và nâng cấp nó theo cách của bạn nhé!

💬 Hãy chia sẻ kết quả của bạn trong phần bình luận! 🚀


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Hướng dẫn: Tạo API quản lý danh bạ với FastAPI và SQLite trong Python dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung bài viết

Tác giả/Dịch giả

K9

Nhà sáng lập Howkteam.com, KQuiz.vn & tác giả các khóa học C#, Auto, Unity3D, Python....

Với mong muốn mang đến kiến thức chất lượng, miễn phí cho mọi người, với tâm huyết phá bỏ rào cản kiến thức từ việc giáo dục thu phí. Tôi đã cùng đội ngũ Kteam đã lập nên trang website này để thế giới phẳng hơn.
Hãy cùng chúng tôi lan tỏa kiến thức đến cộng đồng! 

Khóa học

Python Nâng cao

Khác với các khóa PYTHON CƠ BẢN hay BÀI TẬP PYTHON. Với khóa Python nâng cao bạn không chỉ sẽ được làm quen với nhiều kỹ thuật ở mức độ cao hơn, khó hơn mà còn được giải thích về nguyên lý hoạt động, cách sử dụng cũng như nhiều kinh nghiệm đến từ anh Kim Long - founder và là tác giả của nhiều khóa học tại Howkteam.com

Chào mừng các bạn đã đến với khoá học Lập trình Python nâng cao của Kteam!

Đánh giá

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Không có video.