Python Fast CRUD
https://github.com/aleimu/python-crud
目的
本項目採用了一系列Python中比較流行的組件,可以以本項目爲基礎快速搭建Restful Web API, 這裏主要是放了一些常用的CRUD操作示例和自己積累的通用函數.
說明
本項目使用了下面的常用組件:
- Flask: 輕量級Web框架,可以說是Python中最易用的了
- Flask-SQLAlchemy: ORM工具。本項目需要配合Mysql使用,sqlalchemy的flask包裝,更易使用
- Redis: Python Redis客戶端
- apscheduler : python常用的定時任務管理庫
- Flask-Excel : 報表導出
- 本項目是使用token驗證,
本項目已經預先實現了一些常用的代碼方便參考和複用:
- 創建了用戶模型
- 實現了
/v1/user/register
用戶註冊接口 - 實現了
/v1/user/login
用戶登錄接口 - 實現了
/v1/user/logout
用戶登出接口(需要登錄後獲取token) - 圖片分組的CRUD
/v1/advert/group
,/v1/advert/image
- 圖片的展示策略的CRUD
/v1/advert/style
- 圖片以及連接的訪問觸發的訪問量/點擊量/統計等CRUD
/v1/advert/list
,/v1/advert/statistic
,
本項目已經預先創建了一系列文件夾劃分出下列模塊:
- app 放app,db,log的實例
- model 文件夾負責存儲數據庫模型和數據庫操作相關的代碼
- route 放的是路由,以及進來的請求的預處理
- service 負責處理比較複雜的業務,把業務代碼模型化可以有效提高業務代碼的質量(比如用戶註冊,充值,下單,查詢列表等等)
- cache 負責redis以及本地緩存相關的代碼
- tools 放一些通用的小工具,小函數,方便server中各處調用
- help 下放test(測試文件此處未補全),db_script(放歷次版本的對mysql的庫表結構的變更腳本),以及歷次版本的說明以及一些幫助文件
- logs 放運行產生的日誌文件
本地運行
python runserver.py
項目運行後啓動在3000端口(可以修改,參考Flask文檔),可以配置是否啓用定時任務(訪問量/點擊量的定時統計)
生產環境推薦使用nginx代理 uwsgi_config.ini
uwsgi --ini uwsgi_config.ini --daemonize /var/log/flask_crud.log
server {
listen 3001 default_server;
server_name localhost;
location /static/ {
root /data/;
expires 30d;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/simpleflask.sock; # 必須和uwsgi_config.ini 中的socket配置一致
# 並且需要權限
}
}
參考
https://github.com/openspug/spug 對crud也有較好的封裝,值得參考