Flask 框架:实现简单API测试接口
2023-02-18 16:46:16 时间
通过使用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()
相关文章
- 2023年企业固定资产管理怎么破局?
- 解除Windows 2003的IIS 6.0文件上传限制
- TunesKit AceMovi Video Editor for mac(视频编辑工具) 4.9.20激活版
- WebStorm 2022 for Mac(Web前端开发工具) v2022.3.1中文免登陆版
- Java的数组冒泡排序法
- 互联网产品设计文档类型简介(BRD、MRD、PRD和FSD)
- 弹出的模式窗体控制父窗体的方法
- 一个匹配正浮点数的正则表达式
- 禁用WordPress后台自动保存和修订版本的方法
- LAMP环境配置全程笔记(原创)
- 让32位的Windows7支持4G内存
- 禁用WordPress自动保存(AutoSave)和历史版本(Revisions)方法
- Java多线程控制的心得
- Java多线程的实现
- 我用Java写的PasswordGenerate改进版源码
- CLion 2022 for mac/win(C和C ++ IDE智能代码编辑器) 中文
- Java编写的随机密码生成器源码
- 解决 WordPress 中连续两个减号的显示问题
- 工业交换机与商业交换机区别对比
- 什么时候需要网管型工业交换机