栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python django简单demo 搭建最简单的python服务,提供测试支持 接口mock

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python django简单demo 搭建最简单的python服务,提供测试支持 接口mock

    最近需要对访问第三方服务的接口做一些mock,我们访问第三方的接口是在配置文件进行配置的,很方便替换,所以直接就打算起一个简单的django服务

    请路过大佬不经意的提点!谢谢

    思路:

        1. 找一个开源的django框架(直接其它的都不需研究了,因为测试比较少搞这些。另外其实可以找最简单的demo,我只是顺手)

        2. 添加接口,并做处理

        3. 接口参数写入数据库中, 可方便定义返回内容

(注:我使用的是开源项目automagic 作者ray)

(注意这边演示的前提就是找了一个对应的基本可用的demo项目哦,之后只需要做少量编辑)

添加接口的过程:

1. 找到需要启动的manage.py文件,找到配置文件路径

2.找到主url的路径

3.找到想要添加接口的子节点

4. 在对应的urls.py文件中,添加你需要的接口 

5.接下来,来定义这个接口的返回,在对应的views.py文件中,定义处理该接口的方法咯

6. 最后附上本次要mock的接口公共方法(“项目的源码”请添加wei v:ct-xiaozhou,行业变迁,愿多个可能性)

说明:没有使用django的数据处理方式,直接使用mysql处理方法了

def commonDeel_99shou(request, apiname):
    mysqla = TestMysqlDB()
    apiinfo = mysqla.getoneData(f"SELECt returnStatus FROM test_work.mock_api_info where apiname='{apiname}'")
    apireturnMsg = mysqla.getoneData(
        f"SELECt returnMsg FROM test_work.mock_api_return where apiname='{apiname}' and apiStatus='{apiinfo[0]}'")
    mysqla.close()
    tempstr = apireturnMsg[0]
    tempstr = reStrCommonDeel(tempstr)
    print(type(tempstr))
    if request.method == 'POST':
        # result = {"result": 0, "msg": "执行成功"}
        # return HttpResponse(json.dumps(result))
        try:
            json.loads(tempstr)
        except Exception as e:
            return JsonResponse({"result": -2, "msg": "参数格式错误,检查是否json格式"})
        return HttpResponse(tempstr)
    else:
        return JsonResponse({"result": -1, "msg": "请求方式不对"})

 附上mysql处理(数据表是自己搭建的数据库,使用工具界面添加的,非常简单。。。(有sql啊,但是本人懒啊。。)):

class TestMysqlDB:
    test_host = '10.255.00.00'
    test_port = 3306
    test_user = 'root'
    test_password = '123456'
    test_db = 'test_work'

    def __init__(self, db=None):
        self.conn = pymysql.connect(host=self.test_host,
                                    port=self.test_port,
                                    user=self.test_user,
                                    password=self.test_password,
                                    db=self.test_db,
                                    charset='utf8'
                                    )
        # 使用cursor()方法获取操作游标
        self.cursor = self.conn.cursor()

    def getoneData(self, sqlstr):
        # 返回一条数据
        self.cursor.execute(sqlstr)
        return self.cursor.fetchone()

    def close(self):
        self.cursor.close()
        self.conn.close()

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号