python-三层架构

最近看自己的代码质量越来越差,有人建议我用三层优化一次

  • MODEL 实体类.业务之间尽量用实体类传递
  • DAL数据处理,用的最多的就是数据库方法
  • BLL 业务逻辑
  • COMMON 放一些公用的方法在里面

model层

用的schematics,不用自己写get,set了

from schematics.models import Model
from schematics.types import StringType,IntType
class monkeyconfig(Model):
    cmd = StringType()
    package_name = StringType()
    logdir = StringType() #本机的log存放地址
    remote_path = StringType()  #远程服务器地址,可以给开发查看
    phone_msg_log = StringType() #临时存放手机日志信息路径
    now = StringType()
    exceptions = StringType() #异常列表监控
    sum = StringType() #事件数量
    activity = StringType()
    monkey_log = StringType()
  • 如果我的实体类想放list怎么弄?ListType(IntType) 这样就可以了,是不是很酷,设置值就这样设置 [[111],[3333]]

DAL层

import configparser
import time
def monkeyConfig(mmonkeyconfig, init_file):
    config = configparser.ConfigParser()
    config.read(init_file)
    mmonkeyconfig.package_name = config['DEFAULT']['package_name']
    mmonkeyconfig.logdir = config['DEFAULT']['logdir']
    mmonkeyconfig.remote_path = config['DEFAULT']['remote_path']
    mmonkeyconfig.phone_msg_log = config['DEFAULT']['phone_msg_log']
    mmonkeyconfig.now = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
    mmonkeyconfig.activity = config['DEFAULT']['activity']
    mmonkeyconfig.sum = int(config['DEFAULT']['sum'])
    mmonkeyconfig.monkey_log = mmonkeyconfig.logdir + "\\" + mmonkeyconfig.now + r"monkey.log"
    mmonkeyconfig.cmd = config['DEFAULT']['cmd'] + " " + str(mmonkeyconfig.sum) + ">>" + mmonkeyconfig.monkey_log
    return mmonkeyconfig

BLL层

from DAL import DMonkeyConfig
def monkeyConfig(mmonkeyconfig, init_file):
    return DMonkeyConfig.monkeyConfig(mmonkeyconfig, init_file)

UI层

# 只调用BLL层的东西
from BLL import BMatPlo
from BLL import BAdbCommon
from Common import OperateFile
from BLL import BMonkeyConfig
from Model import MMonkeyConfig
from Model import MMatplo
from BLL import BMenCpu

 ba = BAdbCommon
mconfig = MMonkeyConfig.monkeyconfig()
mc = BMonkeyConfig.monkeyConfig(mconfig, ini_file)

# 下面就可以取实体类的值
mc.cmd, mc.logdir, mc.now, mc.monkey_log

更多

参考我的github接口框架

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容