3. 项目架构的程序设计
优质
小牛编辑
130浏览
2023-12-01
(1). 项目使用技术
- 基于Python语言,版本:>=3.5及以上。
- 使用Django框架,版本:1.11.11的LTS版本。
- MySQL数据库
- 连接数据库:pymysql=0.8.0
- 图像处理: Pillow=5.0.0
- Web前端技术:HTML、CSS、JavaScript和Jquery等
(2). 项目的目录结构
- 本次项目共计四个应用:
myadmin
、web
、common
和ueditor
/myobject/ ├── manage.py ├── myobject │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── common 公共应用 │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── shopmiddleware.py 自定义的中间件 │ ├── migrations │ ├── models.py 网站前后台的共用Model类 │ ├── tests.py │ └── views.py ├── myadmin 网站后台应用 │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── migrations │ ├── views │ │ ├── index.py 后台主视图 │ │ ├── users.py 会员管理视图 │ │ ├── type.py 商品类别管理视图 │ │ ├── goods.py 商品管理视图 │ │ └── orders.py 订单管理视图 │ ├── models.py │ ├── tests.py │ └── urls.py │ ├── web 网站前台应用 │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── migrations │ ├── views │ │ ├── index.py web前台主视图 │ │ ├── users.py 会员操作视图 │ │ ├── cart.py 购物车管理视图 │ │ └── orders.py 订单处理视图 │ ├── models.py │ ├── tests.py │ └── urls.py │ ├── ueditor 百度编辑器(富文本编辑器) │ ├── __init__.py │ ├── UE │ ├── controller.py │ ├── msyhdb.ttf │ ├── ueconfig.json │ └── urls.py │ ├── templates 模板目录 │ ├── myadmin 后台模板总目录 │ │ ├── users/ 后台会员管理 │ │ │ ├── index.html │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ ├── repass.html │ │ ├── type/ 后台类别管理模板 │ │ │ ├── index.html │ │ │ ├── add.html │ │ │ ├── edit.html │ │ ├── goods/ 商品信息管理模板 │ │ │ ├── index.html │ │ │ ├── add.html │ │ │ ├── edit.html │ │ ├── orders/ 订单信息管理模板 │ │ │ ├── index.html │ │ │ ├── edit.html │ │ ├── index.html │ │ ├── login.html │ │ ├── base.html │ │ ├── info.html │ │ │ ├── web 前台模板目录 │ │ ├── base.html │ │ ├── index.html │ │ ├── list.html │ │ ├── detail.html │ │ ├── login.html │ │ ├── signup.html │ │ └── ...... │ ├── static 静态资源目录 │ ├── myadmin 后台静态资源 │ │ ├──.... │ │ ├──.... │ │ │ │ │ ├── web 网站前台静态资源 │ │ ├──.... │ │ ├──....
(3). 项目模块结构
* 网站后台应用的模块操作说明
- 网站后台模板采用github上提供的一个简洁界面,网址:https://github.com/alecfan/mstp_17_akira
模块 | 操作 | 权限 |
---|---|---|
登录&退出管理 | 获取登录界面、处理登录、退出、验证码 | 无 |
后台首页页 | 后台首页 | 网站编辑权限 |
后台会员信息管理 | 浏览(搜索&分页)、详情、更改状态、重置密码 | 网站编辑权限 |
商品类别管理 | 浏览、获取添加界面、执行添加、获取编辑界面、执行修改、删除 | 网站编辑权限 |
商品信息管理 | 浏览(搜索&分页)、获取添加界面、执行添加、获取编辑界面、执行修改、删除 | 网站编辑权限 |
订单信息管理 | 浏览(搜索&分页)、查看订单详情、处理订单、删除 | 网站编辑权限 |
* 网站前台应用的模块操作说明
模块 | 操作 | 权限 |
---|---|---|
商品展示 | 商品首页展示、列表页(搜索分页)、商品详情页 | 无 |
购物车管理 | 添加商品、查看购物车,修改、删除、清空 | 无 |
前台会员管理 | 注册界面、执行注册,登录界面,执行登录,验证码、退出 | 无 |
订单处理 | 订单处理界面,确认订单界面、执行订单处理 | 会员权限 |
会员中心管理 | 个人信息界面、执行个人信息修改,查看订单,订单详情、处理订单 | 会员权限 |
(4). 程序结构
建议统一URL访问格式:
http://主机名:端口/应用名/视图名/函数名 其中:index省略不写,web前台应用名省略不写。
视图中的函数命名格式:
- index() ---- 浏览信息
- add() ---- 加载添加界面
- insert() ---- 执行添加
- delete() ---- 执行删除(路由中使用del)
- edit() ---- 加载编辑界面
- update() ---- 执行信息编辑
(5). 项目中的编码规范
- 遵循良好的编码风格,可以有效的提高代码的可读性,降低出错几率和维护难度。
- 在团队开发中,使用(尽量)统一的编码风格,还可以降低沟通成本。
- 网上有很多版本的编码规范介绍,基本上都是遵循 PEP8 的规范:
- 具体详见:https://www.python.org/dev/peps/pep-0008/
- 如下参考格式:
缩进
* 不要使用 tab 缩进
* 使用任何编辑器写 Python,请把一个 tab 展开为 4 个空格
* 绝对不要混用 tab 和空格,否则容易出现 IndentationError
空格
* 在 list, dict, tuple, set, 参数列表的 , 后面加一个空格
* 在 dict 的 : 后面加一个空格
* 在注释符号 # 后面加一个空格,但是 #!/usr/bin/python 的 # 后不能有空格
* 操作符两端加一个空格,如 +, -, *, /, |, &, =
* 接上一条,在参数列表里的 = 两端不需要空格
* 括号((), {}, [])内的两端不需要空格
空行
* function 和 class 顶上两个空行
* class 的 method 之间一个空行
* 函数内逻辑无关的段落之间空一行,不要过度使用空行
* 不要把多个语句写在一行,然后用 ; 隔开
* if/for/while 语句中,即使执行语句只有一句,也要另起一行
换行
* 每一行代码控制在 80 字符以内
* 使用 \ 或 () 控制换行.
命名
* 使用有意义的,英文单词或词组,绝对不要使用汉语拼音
* package/module 名中不要出现 -
import
* 所有 import 尽量放在文件开头,在 docstring 下面,其他变量定义的上面
* 不要使用 from foo imort *
* import 需要分组,每组之间一个空行,每个分组内的顺序尽量采用字典序,分组顺序是:
* 标准库
* 第三方库
* 本项目的 package 和 module
注释
* 文档字符串 docstring, 是 package, module, class, method, function 级别的注释,可以通过 * __doc__ 成员访问到,注释内容在一对 """ 符号之间
* function, method 的文档字符串应当描述其功能、输入参数、返回值,如果有复杂的算法和实现,也需要写清楚
不要写错误的注释,不要无谓的注释
异常
* 不要轻易使用 try/except
* except 后面需要指定捕捉的异常,裸露的 except 会捕捉所有异常,意味着会隐藏潜在的问题
* 可以有多个 except 语句,捕捉多种异常,分别做异常处理
* 使用 finally 子句来处理一些收尾操作
* try/except 里的内容不要太多,只在可能抛出异常的地方使用,