• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

04点餐项目的架构设计

武飞扬头像
oliver3455
帮助1

(1). 项目的使用技术 

  • 基于Python语言,版本:>=3.6及以上。
  • 使用Django框架,版本:2.2.*的LTS版本。
  • MySQL数据库
  • 连接数据库:mysqlclient=1.4.6
  • 图像处理: Pillow=5.0.0
  • Web前端技术:HTML、CSS、JavaScript和Jquery等

(2). 项目的目录结构 

  • 本次项目共计三个应用:myadminwebmobile
    1.  
      myobject/ 项目目录
    2.  
      |
    3.  
      |--myadmin/ 后台管理应用
    4.  
      | |--__init__.py
    5.  
      | |--views/ 这是独立的文件夹
    6.  
      | | |--index.py 后台首页、登录、退出、验证码加载等视图方法
    7.  
      | | |--user.py 员工信息管理视图
    8.  
      | | |--member.py 会员信息管理视图
    9.  
      | | |--shop.py 店铺信息管理视图
    10.  
      | | |--product.py 菜品信息管理视图
    11.  
      | | |--orders.py 订单信息管理视图
    12.  
      | | |--.....
    13.  
      | |
    14.  
      | |-- admin.py
    15.  
      | |-- apps.py
    16.  
      | |-- models.py 定义了整个网站的models类,除了本应使用,还提供给其他应用
    17.  
      | |-- shopmiddleware.py 定了整个网站的中间件(验证是否登录及权限管理信息)
    18.  
      | |-- tests.py
    19.  
      | |-- urls.py 配置了整个网站后台所有请求路由
    20.  
      |
    21.  
      |--web/ 前台应用(大堂点餐)
    22.  
      | |-- __init__.py
    23.  
      | |--views/ 这是独立的文件夹
    24.  
      | | |--index.py 大堂点餐应用的登录、退出、验证码、加载店铺等方法
    25.  
      | | |--product.py 菜品展示视图
    26.  
      | | |--shopcart.py 购物车管理视图
    27.  
      | | |--orders.py 订单管理视图
    28.  
      | |-- admin.py
    29.  
      | |-- apps.py
    30.  
      | |-- models.py
    31.  
      | |-- tests.py
    32.  
      | |-- urls.py 配置了大堂点餐应用的所有请求路由
    33.  
      |
    34.  
      |--mobile/ 移动端点餐应用\
    35.  
      | |-- __init__.py
    36.  
      | |--views/ 这是独立的文件夹
    37.  
      | | |--index.py 登录,退出路由
    38.  
      | | |--shop.py 店铺信息加载视图
    39.  
      | | |--product.py 菜品信息加载展示视图
    40.  
      | | |--orders.py 个人订单信息管理视图
    41.  
      | | |--member.py 个人中心管理视图
    42.  
      | | |--......
    43.  
      | |
    44.  
      | |-- admin.py
    45.  
      | |-- apps.py
    46.  
      | |-- models.py
    47.  
      | |-- tests.py
    48.  
      | |-- urls.py 配置了移动端点餐应用的所有请求路由
    49.  
      |
    50.  
      |--myobject/ 项目目录
    51.  
      | |-- __init__.py
    52.  
      | |-- settings.py
    53.  
      | |-- urls.py
    54.  
      | |-- wsgi.py
    55.  
      |
    56.  
      |--static/ 静态资源目录
    57.  
      | |-- uploads/ 上传文件存储目录
    58.  
      | |-- myadmin/ 后台管理静态资源目录
    59.  
      | |-- web/ 大堂点餐静态资源目录
    60.  
      | |-- mobile/ 移动端管理静态资源目录
    61.  
      |
    62.  
      |--templates/ 模板目录
    63.  
      | |-- myadmin/ 后台管理模板目录
    64.  
      | |-- web/ 大堂点餐模板目录
    65.  
      | |-- mobile/ 移动端管理模板目录
    66.  
      |
    67.  
      |--manage.py 入口文件
    学新通

(3). 项目模块结构

* 网站后台应用的模块操作说明

模块 操作 权限
登录&退出管理 获取登录界面、处理登录、退出、验证码
后台首页页 后台首页 网站编辑权限
员工信息管理 浏览(搜索&分页)、执行添加、编辑、删除(状态及删除)、更改状态、重置密码 网站编辑权限
店铺信息管理 浏览、获取添加界面、执行添加、获取编辑界面、执行修改、删除 网站编辑权限
菜品类别管理 浏览、获取添加界面、执行添加、获取编辑界面、执行修改、删除 网站编辑权限
菜品信息管理 浏览(搜索&分页)、获取添加界面、执行添加、获取编辑界面、执行修改、删除 网站编辑权限
会员信息管理 浏览(搜索&分页)、详情、更改状态、重置密码 网站编辑权限
订单信息管理 浏览(搜索&分页)、查看订单详情、处理订单、删除 网站编辑权限

* 前台大堂点餐应用的模块操作说明

模块 操作 权限
登录&退出管理 获取登录界面、选择店铺、处理登录、退出、验证码
店铺中的菜品类别与菜品展示 菜品类别,菜品展示 会员权限
购物车(点餐)管理 添加菜品、查看购物车,修改、删除、清空 会员权限
订单处理 订单处理界面,确认订单界面、执行订单处理 会员权限
历史订单管理 查看历史订单,订单详情、处理订单 会员权限

* 移动端应用的模块操作说明

模块 操作 权限
登录&退出管理 获取登录界面、选择店铺、处理登录、退出、验证码
店铺切换 切换店铺 会员权限
菜品展示 添加菜品、查看购物车,修改、删除、清空 会员权限
购物车(点餐)管理 添加菜品、查看购物车,修改、删除、清空 会员权限
个人中心 历史订单、个人信息、数据统计 会员权限

(4). 程序结构

  • 建议统一URL访问格式:

    1.  
      http://主机名:端口/应用名/视图名/函数名
    2.  
       
    3.  
      其中:index省略不写,web前台应用名省略不写。
  • 视图中的函数命名格式:

    • index() ---- 浏览信息
    • add() ---- 加载添加界面
    • insert() ---- 执行添加
    • delete() ---- 执行删除(路由中使用del)
    • edit() ---- 加载编辑界面
    • update() ---- 执行信息编辑

(5). 项目中的编码规范

  • 遵循良好的编码风格,可以有效的提高代码的可读性,降低出错几率和维护难度。
  • 在团队开发中,使用(尽量)统一的编码风格,还可以降低沟通成本。
  • 网上有很多版本的编码规范介绍,基本上都是遵循 PEP8 的规范:
  • 具体详见:PEP 8 – Style Guide for Python Code | peps.python.org
  • 如下参考格式:
  1.  
    缩进
  2.  
    * 不要使用 tab 缩进
  3.  
    * 使用任何编辑器写 Python,请把一个 tab 展开为 4 个空格
  4.  
    * 绝对不要混用 tab 和空格,否则容易出现 IndentationError
  5.  
     
  6.  
    空格
  7.  
    * 在 list, dict, tuple, set, 参数列表的 , 后面加一个空格
  8.  
    * 在 dict 的 : 后面加一个空格
  9.  
    * 在注释符号 # 后面加一个空格,但是 #!/usr/bin/python 的 # 后不能有空格
  10.  
    * 操作符两端加一个空格,如 , -, *, /, |, &, =
  11.  
    * 接上一条,在参数列表里的 = 两端不需要空格
  12.  
    * 括号((), {}, [])内的两端不需要空格
  13.  
     
  14.  
    空行
  15.  
    * functionclass 顶上两个空行
  16.  
    * classmethod 之间一个空行
  17.  
    * 函数内逻辑无关的段落之间空一行,不要过度使用空行
  18.  
    * 不要把多个语句写在一行,然后用 ; 隔开
  19.  
    * if/for/while 语句中,即使执行语句只有一句,也要另起一行
  20.  
     
  21.  
    换行
  22.  
    * 每一行代码控制在 80 字符以内
  23.  
    * 使用 \ 或 () 控制换行.
  24.  
     
  25.  
    命名
  26.  
    * 使用有意义的,英文单词或词组,绝对不要使用汉语拼音
  27.  
    * package/module 名中不要出现 -
  28.  
     
  29.  
    import
  30.  
    * 所有 import 尽量放在文件开头,在 docstring 下面,其他变量定义的上面
  31.  
    * 不要使用 from foo imort *
  32.  
    * import 需要分组,每组之间一个空行,每个分组内的顺序尽量采用字典序,分组顺序是:
  33.  
    * 标准库
  34.  
    * 第三方库
  35.  
    * 本项目的 package 和 module
  36.  
     
  37.  
     
  38.  
    注释
  39.  
    * 文档字符串 docstring, 是 package, module, class, method, function 级别的注释,可以通过 * __doc__ 成员访问到,注释内容在一对 """ 符号之间
  40.  
    * function, method 的文档字符串应当描述其功能、输入参数、返回值,如果有复杂的算法和实现,也需要写清楚
  41.  
    不要写错误的注释,不要无谓的注释
  42.  
     
  43.  
    异常
  44.  
    * 不要轻易使用 try/except
  45.  
    * except 后面需要指定捕捉的异常,裸露的 except 会捕捉所有异常,意味着会隐藏潜在的问题
  46.  
    * 可以有多个 except 语句,捕捉多种异常,分别做异常处理
  47.  
    * 使用 finally 子句来处理一些收尾操作
  48.  
    * try/except 里的内容不要太多,只在可能抛出异常的地方使用,
  49.  
     
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfijhc
系列文章
更多 icon
同类精品
更多 icon
继续加载