ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python——三层架构

2020-04-02 20:52:26  阅读:318  来源: 互联网

标签:接口 架构 Python py inp 用户 视图 user 三层


一、项目目录规范

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
            
    

三层架构

标签:接口,架构,Python,py,inp,用户,视图,user,三层
来源: https://www.cnblogs.com/guanxiying/p/12622849.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有