Flask 框架:实现简单API测试接口

通过使用Python中Flask框架实现一个简单的API接口程序,用户可发送JSON格式的请求,服务器响应请求,并以JSON格式将数据返回给用户,此处代码是一个模板可以测试接口时使用。

Flask代码如下所示:

from flask import Flask, render_template, request, redirect
import json

app = Flask(__name__, template_folder="templates")

@app.route('/login', methods=['GET', 'POST'])
def login():
    return_dict = {'status': '0', 'key': 'none'}

    if request.method == 'GET':
        # 判断参数不为0
        if len(request.args) != 0:
            get_data = request.args.to_dict()
            username = get_data.get("username")
            password = get_data.get("password")
            print("GET => username = {} password = {}".format(username,password))

        return json.dumps(return_dict, ensure_ascii=False)

    if request.method == "POST":
        if len(request.get_data()) != 0:
            username = request.values.get("username")
            password = request.values.get("password")

            print("username = {} => password = {}".format(username,password))

            if(username=="lyshark" and password == "123456"):
                return_dict["status"] = "1"
                return_dict["key"] = "1f3dsgf9834r98ugdf98gjd"
                return json.dumps(return_dict, ensure_ascii=False)

    return json.dumps(return_dict, ensure_ascii=False)

@app.route('/lat',methods=['GET', 'POST'])
def lat():
    return_dict = {'status': '0','x': 'none', 'y':'none'}

    if request.method == 'GET':
        return json.dumps(return_dict, ensure_ascii=False)

    if request.method == "POST":
        if len(request.get_data()) != 0:
            key = request.values.get("key")
            tel = request.values.get("tel")

            print("key = {} => tel = {}".format(key,tel))

            if(key=="1f3dsgf9834r98ugdf98gjd"):
                return_dict["status"] = "1"
                return_dict['x'] = '12.5'
                return_dict['y'] = '22.4'

                return json.dumps(return_dict, ensure_ascii=False)

    return json.dumps(return_dict, ensure_ascii=False)


@app.errorhandler(404)
def not_found(error):
    return_dict = {'status': '404', 'message': '页面没有找到'}
    return json.dumps(return_dict, ensure_ascii=False)

@app.errorhandler(405)
def not_found(error):
    return_dict = {'status': '405', 'message': '服务器不提供请求类型'}
    return json.dumps(return_dict, ensure_ascii=False)

@app.errorhandler(500)
def not_found(error):
    return_dict = {'status': '500', 'message': '传入参数有误,或存在不规范输入'}
    return json.dumps(return_dict, ensure_ascii=False)

@app.errorhandler(400)
def not_found(error):

    return_dict = {'status': '400', 'message': 'Bad Request'}
    return json.dumps(return_dict, ensure_ascii=False)

@app.errorhandler(409)
def not_found(error):
    return_dict = {'status': '409', 'message': 'Conflict'}
    return json.dumps(return_dict, ensure_ascii=False)

if __name__ == '__main__':
    app.run(port=5000,debug=False)

客户测试代码:

import requests

# 模拟登录
def login():
    data = {"username": "lyshark", "password": "123456"}
    req = requests.post(url="http://127.0.0.1:5000/login", data=data)
    print(req.text)

# 模拟取参数
def get_lat():
    data = {"key": "1f3dsgf9834r98ugdf98gjd", "tel": "15644587845"}
    req = requests.post(url="http://127.0.0.1:5000/lat", data=data)
    print(req.text)

if __name__ == '__main__':
    login()
    get_lat()
posted @   lyshark  阅读(1911)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

8951682 | 6896846
博客园 - 开发者的网上家园

点击右上角即可分享
微信分享提示