Enjoy the good lift everyday!
关闭
欢迎来PyGo个人空间 ^_^
系统实例之人员信息管理系统 | PyGo²

系统实例之人员信息管理系统

Python实战 Demo系统 Web flask 脚手架

背景

项目基于Python+mysql+gunicorn+supervisor进行搭建的一个web脚手架,python的web框架使用的是flask。架子已经基本搭建起来,备具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配置文件中添加配置信息,需要在此文件进行解析添加,建议添加配置默认值。

  2. 手动启动

  • 项目根目录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. 安装包

    手动进行包安装:

    1
    pip install -r requirements.txt

    此程序运行于python2,其中requirements.txt项目所需要的包,已固定版本。

  2. supervisor

    管理项目进程的启动、停止、重启等操作。
    安装:

    1
    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。

  3. 管理gunicorn

    负责web项目进程、服务。

    安装:

    1
    pip install gunicorn

    配置:

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

    如需特别项目启动信息,可以加入gunicorn.conf或者更改命令行gunicorn启动方式加入参数即可。

  4. sql

    创建sql:
    deploy>sql>table_create_sql.sql,直接执行即可。

    插入sql:
    deploy>sql>print_insert_sql.py,具体需要哪些insert的数据,看代码,根据需要插入。

  5. 其他

    • base_webframe_start.bash、base_webframe_end.bash为手动方式进行项目启动与项目结束(已废弃)。
    • deploy>utils>utils.py 为工具方法,任何python2项目都适合使用。

结束语

如果觉得脚手架还可以,麻烦在github上点个小星星。。。。。。
  • 本文作者:mingliang.gao【一个爱老婆Python程序猿。。。。。。】
  • 本文链接: http://pygo2.cn/articles/12268/
  • 版权声明: 本博客所有文章欢迎转载,转载请注明出处!
觉得有帮助,请偶坐个公交车
0%