系統實例之人員信息管理系統

背景

項目基於python+flask+mysql+gunicorn+supervisor進行搭建的一個web腳手架,架子已經基本搭建起來,備具Restful API、驗證session、頁面模板等功能。

通過這個腳手架開發的一個員工信息管理小系統,用來做Demo,完美使用!!!。

環境說明

  1. 開發環境

id name Version
1 Os MacOS10.15.6
2 IDE PyCharm
  1. 基礎架構

id name Version Function
1 Python 2.7 開發語言,基於python2
2 flask 1.1.2 使用的web框架
3 MariaDB 5.5.65 數據庫
4 gunicorn 20.0.4 web服務與進程
5 supervisor 3.4.0 項目啓動、停止、重啓等操作

項目主要運行於Linux系統上,本人開發使用的是MacOS,線上服務使用的是騰訊雲服務器(Centos7.0)。

項目說明

  1. 項目地址(gitub)

    https://github.com/GIS90/base_webframe

  2. Demo地址

  1. 環境搭建與項目運行

  • Centos7.0系統服務器(建議Mac或者雲服務器)
  • mysql數據庫安裝與配置(略,建議baidu一下)
  • 安裝git命令,如果有進行下一步(檢測:which git)
  • git clone https://github.com/GIS90/base_webframe.git
  • 更新web配置文件:etc/prod/config.py(線上)、etc/dev/config.py(測試),根據不同需求進行項目更改
  • 安裝項目運行的環境:python install_env.py,建立項目獨立的運行環境,安裝了virtualenv、python、gunicorn、packages等操作,瞭解具體詳情請參考代碼
  • cd 項目根目錄
  • 項目根目錄:source .venv/bin/activate:激活項目環境
  • 啓動項目:gunicorn -c etc/prod/gunicorn.conf(線上)、gunicorn -c etc/dev/gunicorn.conf(測試)或者手動啓動(下面有介紹),關於dev/prod配置請參考上面介紹
  • 【選做】:安裝supervisor && 項目加入supervisor進行管理,項目包含了supervisord配置文件&&項目supervisor配置文件
  1. 配置說明

項目配置主要有2套,位於項目的根目錄etc下: - dev 測試環境 - prod 線上環境

每套配置文件夾下有3個配置文件,config與gunicorn進行綁定:

  • config:項目的db、mail、log等配置,這裏的log記錄項目的log,關於項目相關的配置都可以在此文件進行配置
  • gunicorn:項目啓動時所需要的IP、port、log、進程數量等配置
  • supervisor: 項目管理的配置信息

.yaml格式的配置文件是有deploy/config.py進行解析的,如果在config.yaml配置文件中添加配置信息,需要在此文件進行解析添加,建議添加配置默認值。

  1. 手動啓動

  • 項目根目錄wsgi.py文件加入

  • app.run(host="0.0.0.0", port=11111, debug=True)

  • 執行sudo python wsgi.py,代碼目前已寫入,處於註釋狀態

    注意:

    • 通過手動啓動的項目爲dev開發環境配置,可在deploy/config.py中進行默認調整(mode = os.environ.get('mode') or 'dev')
    • 如果手動啓動模式開啓,在gunicorn進行啓動,會error: [Errno 48] Address already in use.
    • 啓動項目一定要用virtualenv安裝的python環境進行啓動(source .venv/bin/activate)

其他

  1. 安裝包

    手動進行包安裝:

    pip install -r requirements.txt
    

    此程序運行於python2,其中requirements.txt項目所需要的包,已固定版本。

  2. supervisor

    管理項目進程的啓動、停止、重啓等操作。 安裝:

    pip install supervisor
    

    配置:

    • dev:etc/dev/supervisor_base_webframe.conf
    • prod:etc/prod/supervisor_base_webframe.conf

把指定環境的supervisor_base_webframe.conf cp到/etc/supervisord.d/include/*下。 項目root根目錄下有supervisord.conf文件,用來配置supervisord。

  1. 管理gunicorn

    負責web項目進程、服務。

    安裝:

    pip install gunicorn
    

    配置:

    • dev:etc/dev/gunicorn.conf
    • prod:etc/prod/gunicorn.conf

如需特別項目啓動信息,可以加入gunicorn.conf或者更改命令行gunicorn啓動方式加入參數即可。

  1. sql

    創建sql: deploy>sql>table_create_sql.sql,直接執行即可。

    插入sql: deploy>sql>print_insert_sql.py,具體需要哪些insert的數據,看代碼,根據需要插入。

  2. 其他

  • base_webframe_start.bash、base_webframe_end.bash爲手動方式進行項目啓動與項目結束(已廢棄)。
  • deploy>utils>utils.py 爲工具方法,任何python2項目都適合使用。

結束語

如果覺得腳手架還可以,麻煩在github上點個小星星。。。。。。

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