Xây base project API bằng Flask

Tram Ho

Bài viết này mình sẽ hướng dẫn các bạn xây dựng một base project api bằng python sử dụng framework Flask, project đồng thời sẽ sinh ra document cho api luôn

Cài đặt

Đầu tiền kiểm tra xem máy bạn đã cài đặt pip chưa:

Nếu chưa cài đặt bạn có thể xem link này để cài đặt pip vào máy của bạn: https://pip.pypa.io/en/latest/installing/

Cài đặt python và virtualenv :

Build base project

Tạo thư mục

Trong thư mục vừa tạo bạn tạo các folder vào init file theo cấp sau:

Trong đó file __init__.py bạn để trống, file này để cho flask hiểu rằng nó là 1 module thôi

Tiếp theo cài đặt flask framework và các package cần thiết

sau khi cài xong cần update file requirements.txt để lưu lại những package đã cài đặt

Sau khi chạy lệnh thì requirements.txt sẽ có nội dung thế này

Trong folder main tạo 1 file config.py với nội dung như sau:

File này để setting môi trường và database, trong phần này database mặc định là sqlite, nếu bạn sử dụng mysql hay postgree thì cần cài đặt thêm packages PyMySQL hoặc psycopg2. rồi chỗ dòng SQLALCHEMY_DATABASE_URI bạn cần thay đổi nội dung cho nó, giả sử mysql sẽ đổi thành SQLALCHEMY_DATABASE_URI=mysql+pymysql://root:[email protected]/flask_test (root là users, 123456 là password, localhost là host url, flask_test là tên của database), postgree cũng tương tự chỉ cần đổi mysql+pymysql thành postgresql+psycopg2 là được.

Trong thư mục main bạn thêm nội dung sau vào file __init__.py

Trong thư mục gỗ của project bạn tạo 1 file có tên là manage.py có nội dung như sau:

Cuối cùng chạy lệnh sau để khởi tạo server python

mỗi mọi thứ đều ổn nó sẽ show thế này

Như vậy chúng ta đã xong phần create app cho flask, tiếp theo sẽ xử lý đến các phần tiếp theo như model, controller, service hay unit test

Database Models and Migration

Trong package model bạn tạo 1 file user.py có nội dung sau

Trong file manage.py bạn cần import file user.py này vào để có thể chạy migration

Tiếp theo chạy migration

Test

Trong module test bạn tạo một file có nội dung như sau:

File này có mục đích test file config bạn vừa tạo ở phía trên

Chạy test bằng lệnh sau: python manage.py test

Controller

Trong folder service bạn tạo mới một file user_service.py có nội dung như sau:

Phần service này khá đơn giản, nó có các hàm như create users, get all users hay get detail một users

Trong package main bạn tạo mới một package tên là util

trong util bạn tạo một file là dto.py có nội dung như sau:

để hiểu hơn về DTO là gì bạn tham khảo link sau https://en.wikipedia.org/wiki/Data_transfer_object
File này sẽ giúp ta response api, validate hay viết docs

Tạo user_controller.py trong controller

Controller này sẽ function get list users hay get detail users, đồng thời cũng có những phần để viết docs cho api luôn trong code, cái này lúc ban đầu nhìn có vẻ hơi rối code một chút.

Thêm vào file __init__.py bên trong app nội dung sau:

file này như kiểu đăng ký route cho các api sử dụng packages blueprint

bạn cần update file manage.py với nội dung sau để đăng ký route

Bạn chạy lại server: python manage.py run và vào link http://127.0.0.1:5000/ sẽ show ra docs cho api bạn vừa viết hay có thể test nhưng api get list users ở trên

Phần tiếp theo mình sẽ dịch nốt bài viết.

Tài liệu

Bài viết được dịch từ

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo