+1

30 Ngày Chinh Phục FastAPI - [Ngày 1]

image.png

1. Giới thiệu về FastAPI:

1.1. FastAPI là gì?

FastAPI là một công cụ giúp bạn tạo API (application programming interface) bằng Python rất nhanh và mạnh mẽ. Nó giúp các lập trình viên xây dựng các ứng dụng kết nối dữ liệu nhanh chóng và dễ dàng.

1.2. Tại sao FastAPI lại đặc biệt?

  1. Nhanh và mạnh: FastAPI có thể xử lý hàng nghìn yêu cầu mỗi giây mà không bị chậm.

  2. Dễ sử dụng: Các lập trình viên có thể dễ dàng tạo API chỉ bằng vài dòng mã.

  3. Kiểm tra dữ liệu tự động: FastAPI sẽ tự động kiểm tra xem dữ liệu bạn gửi có đúng hay không (ví dụ như số điện thoại phải đúng định dạng).

  4. Tài liệu tự động: FastAPI tự động tạo tài liệu API (giới thiệu về các tính năng của API) cho bạn, giúp dễ dàng hiểu và thử nghiệm.

1.3. So sánh với các Framework khác

FastAPI vs Flask/Django:

  • Hiệu suất: FastAPI nhanh hơn nhiều so với Flask và Django. Flask khá nhẹ nhàng nhưng không hỗ trợ async tốt như FastAPI. Django mạnh mẽ, nhưng lại hơi nặng nề và yêu cầu nhiều cấu hình hơn.

  • Tính năng: FastAPI tích hợp sẵn nhiều tính năng hiện đại như kiểm tra dữ liệu, tự động tạo tài liệu API, và hỗ trợ async. Còn Flask và Django sẽ cần bạn phải cài thêm thư viện bên ngoài để có những tính năng này.

  • Độ phức tạp: FastAPI yêu cầu ít mã hơn và dễ cấu hình hơn so với Django, nhưng lại mạnh mẽ hơn Flask khi xử lý các tính năng phức tạp như async, xác thực và tài liệu tự động.

1.4. Ví dụ về FastAPI - (chỉ là ví dụ nên bạn đừng quá lo lắng nếu chưa hiểu gì)

Giả sử bạn muốn tạo một ứng dụng web trả về lời chào. Bạn chỉ cần vài dòng mã như thế này:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, World!"}

Khi chạy ứng dụng, bạn chỉ cần mở trình duyệt và truy cập http://localhost:8000/, bạn sẽ thấy kết quả:

{"message": "Hello, World!"}

Ngoài ra, FastAPI còn tự động tạo tài liệu API tại http://localhost:8000/docs, giúp bạn dễ dàng thử nghiệm API mà không cần viết thêm gì.


2. Chuẩn bị môi trường cho FastAPI (Từ giờ là học hành nghiêm túc nhá.

2.1. Cài đặt Python

Thật ra bản thân mình thì thích sử dụng pyenv để cài python hơn. Mình thấy có 1 bài hướng dẫn trên Youtube - [ How to Install and Run Multiple Python Versions on Windows 10/11 | pyenv & virtualenv Setup Tutorial] rất hay mà lần nào mình reset máy mới hay chuyển máy khác thì đều lục lại video này để coi cả. Ah, mình nói trước là mình dùng Windows nhá.

Ah mình cũng thấy có 1 bạn trên viblo có chỉ cách cài pyenv cho MacOS, có gì bạn đọc tham khảo tại đây nhé. https://viblo.asia/p/fastapi-phan-1-gioi-thieu-va-setup-moi-truong-WR5JRxjQVGv

2.2. Cài đặt pip

  • Pip là trình quản lý gói của Python.
  • Kiểm tra xem pip đã được cài đặt chưa bằng lệnh:
    pip --version
    
  • Nếu chưa cài pip, sử dụng lệnh:
    python -m ensurepip --default-pip
    
  • Cập nhật pip lên phiên bản mới nhất:
    python -m pip install --upgrade pip
    

2.3. Tạo Virtual Environment (môi trường ảo)

  • Virtual environment giúp bạn quản lý các gói Python riêng biệt cho từng dự án, tránh xung đột giữa các dự án khác nhau.

Ah có vẻ như là, tính tình của mình bắt đầu khó khăn rồi... Nên là mình bắt buộc các bạn khi tạo một project nào thì phải tạo kèm 1.venv (gọi là môi trường ảo) ngay trong project hiện tại luôn nhen. Phải là có dấu . trước chữ "venv" đấy nhé. 😒

  • Tạo môi trường ảo:
    python -m venv .venv
    

Đó thấy hông, đầu tiên CD vào thư mục tên 'FastAPI', sau đó là sẽ tạo một cái '.venv' ngay tại thư mục này, sau đó dùng 'ls' để kiểm tra xem có những gì trong thư mục 'FastAPI' chưa nhé. Tới đây mà còn ông nào bảo là: sao em cũng gõ CD vào terminal/cmd/powershell mà báo lỗi chưa có FastAPI thì toi cũng chịu các ông. Phải tạo thư mục này trước nhen. 🤣 image.png

  • Kích hoạt môi trường ảo:
    • macOS/Linux:
      source .venv/bin/activate
      
    • Windows:
      .venv\Scripts\activate
      
      image.png

Thấy cái chữ FastAPI nó được đóng trong dấu () là kích hoạt .venv chuẩn rồi đấy. Sau muốn đóng thì chỉ cần gõ thêm dòng deactivate là xong. Nhưng mà giờ đang trong bài học nên không có đóng nhen, đợi học hết rồi hẳn đóng ah nhenn. 😎

2.4. Cài đặt FastAPI và Uvicorn

  • FastAPI là framework web mà chúng ta sẽ sử dụng.
  • Uvicorn là ASGI server giúp chạy ứng dụng FastAPI.
  • Cài đặt bằng lệnh:
    pip install fastapi uvicorn
    
    Ý là có ai thắc mắc gì không? Tại hồi đó toi chạy từng cái như kiểu pip install fastapi xong enter 1 cái, rồi lại pip install uvicorn xong enter lần 2,... cứ tiếp tục vậy cho đến khi biết được là có thể viết cách nhau bởi 1 dấu cách cũng được á 🤣. Móe hồi đó mình lúa voải.

image.png Uh, ý là khoe đã cài thư viện xong rồi đó, các bạn chắc là không gặp lỗi gì đâu nhỉ?


3. Chạy thử ứng dụng FastAPI đầu tiên (Học đi đôi với hành)

3.1 Tạo file main.py

  1. Mở trình soạn thảo code (như VS Code, Sublime Text, v.v.).
  2. Tạo file mới và đặt tên là main.py. image.png
  3. Thêm đoạn mã sau vào file:
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

3.2. Chạy ứng dụng

  1. Mở terminal (command prompt) và di chuyển đến thư mục chứa file main.py.
  2. Chạy ứng dụng bằng lệnh sau:
    uvicorn main:app --reload
    
    • main: Tên file Python (không có .py).
    • app: Tên biến FastAPI instance.
    • --reload: Tự động reload khi có thay đổi trong code. image.png

3.3. Kiểm tra kết quả

  1. Mở trình duyệt và truy cập địa chỉ:
    http://127.0.0.1:8000 hoặc http://localhost:8000
    
  2. Bạn sẽ thấy kết quả trả về: {"Hello": "World"}.

image.png image.png

  1. Để xem tài liệu API tự động, truy cập:
    http://127.0.0.1:8000/docs
    

image.png


4. Kết bài

Uh, bài học hôm nay chỉ có vậy thôi. Ngày 2 sẽ học: Request, Response, Routing, HTTP Methods.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí