美文网首页
Mock接口-Fastapi、Flask

Mock接口-Fastapi、Flask

作者: 柒公子c | 来源:发表于2021-04-08 00:00 被阅读0次
    # mock接口开发:
    # 1、查询产品、开户接口 xxx
    # 直接查看接口文档:http://127.0.0.1:8888/docs
    
    import fastapi, uvicorn, tools
    
    from fastapiimport Form
    
    from starlette.requestsimport Request
    
    server = fastapi.FastAPI()
    
    @server.get('/login')  # 装饰器
    def login(username: str, password: str):
        return {'username': username, 'password': password}
    
    
    @server.get('/product')
    def product():
        return {
            'code': 0,
            'data': [
                {'product_name': '朝朝盈1号', 'status': 0},
                {'product_name': '朝朝盈2号', 'status': 1},
                {'product_name': '朝朝盈3号', 'status': 2}
            ]
        }
    
    
    @server.get('/pay')  # 装饰器
    def pay(money: float, status='1'):
        if status == '0':
            return {'code': 1, 'status': 'fail'}
        elif status == '1':
            return {'code': 1, 'status': 'success', 'balance': money}
    
    
    @server.post('/reg')  # post请求注册接口
    def pay(username: str, password: str, cpassword: str):
        if username.strip() and password.strip() and cpassword.strip():
            if password.strip() != cpassword.strip():
                return {"两次输入的密码不一致,请重新输入"}
            else:
                select_sql = "select * from app_myuser where username='%s';" % username
                if tools.execute_sql(select_sql):
                    return {'code': -1, 'msg': '用户名已存在'}
                else:
                    passd = tools.my_md5(password)
                    insert_sql = "insert into app_myuser(username,passwd,) value('%s','%s');" % (username, passd)
                    tools.execute_sql(insert_sql)
                    return {'code': 1, 'msg': '账户注册成功'}
    
    
    @server.post('/login')  # post请求注册接口
    def pay(request: Request, username: str = Form(...),
            password: str = Form(...)):  # 直接去请求体里面获取username和password键对应的值并自动转化成字符串类型
        if username.strip() and password.strip():
            pasd = tools.my_md5(password)  # 先将密码进行加密
            select_sql = "select * from app_myuser where username='%s' and passwd='%s';" % (username, pasd)
            if tools.execute_sql(select_sql):
                if username.strip() == username and password.strip() == pasd:
                    return {'code': 1, 'msg': '账户登录成功'}
                elif username.strip() != username:
                    return {'code': -1, 'msg': '用户名不存在'}
                else:
                    return {'code': -1, 'msg': '密码错误'}
    
    
    uvicorn.run(server, port=8888, debug=True, host='0.0.0.0')  # 外部调用host='0.0.0.0'
    # 内测地址:http://127.0.0.1:8888/product
    # 外部调用:http://192.168.1.1:8888/product
    
    
    #Flask框架,mock接口
    import flask, tools
    
    server = flask.Flask(__name__)
    
    
    @server.route('/login', methods=['post', 'get'])
    def login():
        username = flask.request.values.get('username')
        password = flask.request.values.get('password')
        if username.strip() and password.strip():
            pasd = tools.my_md5(password)  # 先将密码进行加密
            select_sql = "select * from app_myuser where username='%s' and passwd='%s';" % (username, pasd)
            if tools.execute_sql(select_sql):
                if username.strip() == username and password.strip() == pasd:
                    return {'code': 1, 'msg': '账户登录成功'}
                elif username.strip() != username:
                    return {'code': -1, 'msg': '用户名不存在'}
                else:
                    return {'code': -1, 'msg': '密码错误'}
        else:
            return {'code': -1, 'msg': '不能为空'}
    

    相关文章

      网友评论

          本文标题:Mock接口-Fastapi、Flask

          本文链接:https://www.haomeiwen.com/subject/vinlkltx.html