Python——三层架构
一、项目目录规范
Foo/
|-- core/ # 存放业务逻辑相关代码
| |-- core.py
|
|-- api/ # 存放接口文件,接口主要用于为业务逻辑提供数据操作。
| |-- api.py
|
|-- db/ # 放操作数据库相关文件,主要用于与数据库交互
| |-- db_handle.py
|
|-- lib/ # 存放程序中常用的自定义模块
| |-- common.py
|
|-- conf/ # 存放配置文件
| |-- settings.py
|
|-- run.py # 程序的启动文件,一般放在项目的根目录下,因为在运行时会默认将运行文件所在的文件夹 sys.path的第一个路径,这样就省去了处理环境变量的步骤
|-- setup.py # 安装、部署、打包的脚本。
|-- requirements.txt # 存放软件依赖的外部Python包列表
|-- README # 项目说明文件
二、三层架构
2.1 用户视图层
-
职责:与用户进行交互,接受用户输入的数据,并将其交给逻辑接口层进行处理,逻辑接口层最终会将处理的结果返回给用户视图层展示给用户
-
示例:登录功能,用户在用户视图层输入用户名密码后,程序将用户名跟密码传递给逻辑接口层进行匹配,最终用户视图层接收逻辑接口层返回的信息比如登录成功或者失败。
from interface import user_interface def login(): inp_name = input("用户名:").strip() inp_pwd = input("密码:").strip() # 将输入的数据传递给逻辑接口层 flog, msg = user_interface.login_interface(inp_name, inp_pwd) if flog: print(msg) else: print(msg)
2.2 逻辑接口层
-
职责:相当于用户视图层与数据处理层的桥梁专门负责接收用户视图层传过来的数据,并进行核心逻辑的校验,校验的过程中会去访问数据处理层进行数据的增删改查操作,通过或不通过后会返回一个结果给用户视图层进行展示
-
示例:登陆接口,接收用户传入的数据并将其拿到传入数据处理层进行校验,校验通过后返回登陆成功给用户视图层,否则返回登录失败给用户视图层
from db import db_handle def login_interface(inp_name, inp_pwd): # 将数据传入数据处理层进行校验 user_data = db_handle.select(inp_name) if user_data is None: # 返回结果给用户视图层 return False, '用户不存在' if inp_pwd == user_data["password"]: return True, '登陆成功' return False, '密码错误'
2.3 数据处理层
-
职责:接收到接口层传递过来的参数,进行数据的处理。
''' 1.增加数据 2.查看数据 3.修改数据 4.删除数据 ''' import json import os def select(inp_user): if os.path.exists(user_json_path): with open('数据存储路径', 'rt', encoding='utf-8') as f: user_dic = json.load(f) # 将校验结果返还给逻辑接口层 return user_dic