项目需求
一.从零创建baoaiback项目
1.创建虚拟环境venv
2.导入依赖库requirements.txt
3.Git项目版本库初始化
4.配置文件
-
.gitignore
-
config.py
-
logging_config.py
5.创建主控文件manage.py和www_manage.py
6.创建Restful应用目录 app
7.创建WWW应用目录 www
8.设置项目目录结构:
9.flask_restplus和flask_restplus_patched需要从https://gitee.com/yuanbaonet/baoaiback中复制。
10.app应用中包含:
11.www应用中包含:
二. 通用类开发
1.目录:app/common
2.状态类Status, 文件status.py ,包括成功和失败两种状态,每个状态包含状态码和状态信息两个属性。
-
如成功状态调用方法Status.SUCCESS.status Status.SUCCESS.message
-
失败状态调用方法:Status.ERROR.status Status.ERROR.message
-
SUCCESS 属性 status 值 200000,message 值 Success
-
ERROR 属性 status 值 200400,message 值 Error
3.响应结果类 Result,文件 result.py,包括成功和失败两种返回结果。
{
"status": status,
"message": message,
"data": data
}
4.静态方法 success() 和 error(), status和message默认来自Status
三. 项目版本信息
-
app和www应用中设置__version__及__description__
-
python manage.py baoai 或 python www_manage.py baoai显示版本信息
四. app应用模块化开发架构:
-
目录结构:app应用功能模块目录:app/modules , 自定义功能模块加入该目录中。
-
模块执行流程:manage.py => app.create_app => app.modules.init_app =>
app.modules.admin.init_app + app.modules.profiles.init_app -
案例 :
-
增加两个功能模块(目录需带有__init__.py),账号模块
admin和账号概要信息模块profiles -
admin模块__init__.py 定义init_app函数,函数内容: print(“admin init”)
-
profiles模块__init__.py 定义init_app函数,函数内容: print(“profiles
init”) -
modules 模块init_app自动查找该模块的所有子模块(admin, profiles),
并执行每个模块中的init_app函数 -
app模块定义create_app函数, 并调用子模块modules的init_app函数。
-
项目主运行文件manage.py 调用app模块的create_app函数
-
五. www应用模块化开发架构:
-
目录结构:www应用功能模块目录:www/modules , 自定义功能模块加入该目录中。
-
模块执行流程:www_manage.py => www.create_app => www.modules.init_app =>
www.modules.main.init_app + app.modules.about.init_app -
案例 :
-
增加两个功能模块(目录需带有__init__.py),首页模块 main和关于模块about
-
main模块__init__.py 定义init_app函数,函数内容: print(“main init”)
-
about模块__init__.py 定义init_app函数,函数内容: print(“about init”)
-
modules 模块init_app自动查找该模块的所有子模块(main, about),
并执行每个模块中的init_app函数 -
www模块定义create_app函数, 并调用子模块modules的init_app函数。
-
项目主运行文件www_manage.py 调用www模块的create_app函数
-
项目开发工具
下载插件
-
Chinese (Simplified) Language Pack for Visual Studio Code\
:中文语言包 -
jshint\
:js语法检验 -
git history\
:git 日志管理 -
Python\
:语法检查, 调试 (包含远程调试), 智能感知, Jupyter Notebooks, 代码格式化, 代码重构, 单元测试, 代码片段等。
code默认已经支持HTML5、CSS和JS 语法检查, 调试 (包含远程调试), 智能感,
, 代码重构, 单元测试, 代码片段等。
项目实战
完成项目需求(一)
创建BaoAI Back 后端项目
例:创建项目目录:
/baoai/baoaiback/
将baoaiback做为项目目录。
虚拟环境创建
# 1. 创建虚拟环境
# windows, 假设项目根路径:d:/baoai/baoaiback/
cd d:/baoai/baoaiback
mkdir venv
cd venv
python -m venv .
# 运行虚拟环境
d:/baoai/baoaiback/venv/Scripts/activate.bat
cd d:/baoai/baoaiback
# linux, 假设项目根路径:/baoai/baoaiback/
cd /baoai/baoaiback
mkdir venv
cd venv
python -m venv .
# 运行虚拟环境
source /baoai/baoaiback/venv/bin/activate
cd /baoai/baoaiback
下载requirements.txt
https://gitee.com/yuanbaonet/baoaiback/blob/master/requirements.txt
# 安装依赖库(必须处于虚拟环境)
安装依赖库国内常用镜像
https://pypi.tuna.tsinghua.edu.cn/simple/ \# 清华大学
https://mirrors.aliyun.com/pypi/simple/ \# 阿里云
https://pypi.douban.com/simple/ \# 豆瓣
https://pypi.mirrors.ustc.edu.cn/simple/ \# 中国科学技术大学
https://pypi.hustunique.com/ \# 华中科技大学
# windows 安装依赖库
python -m pip install --upgrade pip
pip install -r requirements.txt
# 如果下载速度慢可以采用国内镜像(推荐)
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
Git版本管理:项目初始化
Git 初始化
新增
.gitignore,从https://gitee.com/yuanbaonet/baoaiback中.gitignore内容复制过来。
https://gitee.com/yuanbaonet/baoaiback/blob/master/.gitignore
新建项目目录结构及文件
按需求设置项目目录及文件。从https://gitee.com/yuanbaonet/baoaiback中复制flask_restplus和flask_restplus_patched依赖库。
app和www目录及所有子目录都需增加__init__.py文件,目的使app和www由项目应用目录变成模块
提交项目文件至git版本库
全部提交文件至git版本库,同时标记版本:baoai_python_v3
本章项目源码
URL:https://gitee.com/yuanbaonet/master_python/tree/baoai_python_v3/
对应版本:baoai_python_v3