python-crud

Python Fast CRUD

https://github.com/aleimu/python-crud

目的

本項目採用了一系列Python中比較流行的組件,可以以本項目爲基礎快速搭建Restful Web API, 這裏主要是放了一些常用的CRUD操作示例和自己積累的通用函數.

說明

本項目使用了下面的常用組件:

  1. Flask: 輕量級Web框架,可以說是Python中最易用的了
  2. Flask-SQLAlchemy: ORM工具。本項目需要配合Mysql使用,sqlalchemy的flask包裝,更易使用
  3. Redis: Python Redis客戶端
  4. apscheduler : python常用的定時任務管理庫
  5. Flask-Excel : 報表導出
  6. 本項目是使用token驗證,

本項目已經預先實現了一些常用的代碼方便參考和複用:

  1. 創建了用戶模型
  2. 實現了/v1/user/register用戶註冊接口
  3. 實現了/v1/user/login用戶登錄接口
  4. 實現了/v1/user/logout用戶登出接口(需要登錄後獲取token)
  5. 圖片分組的CRUD /v1/advert/group,/v1/advert/image
  6. 圖片的展示策略的CRUD /v1/advert/style
  7. 圖片以及連接的訪問觸發的訪問量/點擊量/統計等CRUD /v1/advert/list,/v1/advert/statistic,

本項目已經預先創建了一系列文件夾劃分出下列模塊:

  1. app 放app,db,log的實例
  2. model 文件夾負責存儲數據庫模型和數據庫操作相關的代碼
  3. route 放的是路由,以及進來的請求的預處理
  4. service 負責處理比較複雜的業務,把業務代碼模型化可以有效提高業務代碼的質量(比如用戶註冊,充值,下單,查詢列表等等)
  5. cache 負責redis以及本地緩存相關的代碼
  6. tools 放一些通用的小工具,小函數,方便server中各處調用
  7. help 下放test(測試文件此處未補全),db_script(放歷次版本的對mysql的庫表結構的變更腳本),以及歷次版本的說明以及一些幫助文件
  8. 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也有較好的封裝,值得參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章