通过使用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()

Flask 框架:实现简单API测试接口的更多相关文章

  1. Python Flask框架路由简单实现

    Python Flask框架路由的简单实现 也许你听说过Flask框架.也许你也使用过,也使用的非常好.但是当你在浏览器上输入一串路由地址,跳转至你所写的页面,在Flask中是怎样实现的,你是否感到好 ...

  2. Python的Flask框架开发RESTful API

    web框架选择 Django,流行但是笨重,还麻烦,人生苦短,肯定不选 web.py,轻量,但据说作者仙逝无人维护,好吧,先pass tornado,据说倡导自己造轮子,虽然是facebook开源的吧 ...

  3. 免费的天气API测试接口

    网上几乎所有的天气接口都需要注册key,然后还各种频率限制,每天调用次数才几百次? 太坑爹了吧 一个简单的天气预报功能, 为什么要搞的这么复杂, 收什么费? 推荐一个真正免费的天气API接口, 返回j ...

  4. linux下Flask框架搭建简单网页

    开始安装FLASK需要创建一个虚拟环境,虚拟环境可以不干扰正在使用的系统环境,避免影响,并且也不需要完全的root权限,更加安全可靠. 搭建环境 Python3.4 进入到microblog目录下创建 ...

  5. Flask框架 请求与响应 & 模板语法

    目录 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask 框架 与 Django 框架对比 简单使用Flask提供服务 Flask 中的 Response(响应) F ...

  6. Flask框架

    FLask框架的简单介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请 ...

  7. 自动化测试系列(二)|API测试

    在上次的自动化测试系列(一)中为大家大体介绍了自动化测试的概念,本文主要针对API测试的概念及API测试在猪齿鱼Choerodon中的实践展开. API(应用程序编程接口)测试是一种软件测试,可以直接 ...

  8. Python使用Flask实现RESTful API,使用Postman工具、requests库测试接口

    RESTful是一种API设计规范.在RESTful架构中,主要使用POST,DELETE,PUT和GET四种HTTP请求方式分别对指定的URL资源进行增删改查操作. RESTful之前的做法: /u ...

  9. 使用Flask+MongoDB实现基于REST的接口简单操作

    目录 前言 1 准备工作 2 具体实现 前言 最近在捣鼓如何使用阿里云服务器搭建一个简单的基于Flask框架的后端接口,刚开始为了图方便,就直接买了一个Windows Server 2008系统服务器 ...

  10. 测试开发中Django和Flask框架

    Python测试开发中Django和Flask框架 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应用.系统应用)跟建造房子的过程一样,需要先打地基,搭好骨架,然后 ...

随机推荐

  1. VMware15.5安装Ubuntu20.04

    一.安装前的准备 1.下载好Ubuntu20.04的镜像文件,直接从官网下载就好,激活密匙. 2.准备好VMware软件,这里就忽略安装过程了. 二.建立虚拟机以及开启正式的Ubuntu安装过程 参考 ...

  2. [kuangbin] 专题7 线段树 题解 + 总结

    [kuangbin] 专题7 线段树 题解 + 总结 kuangbin带你飞:点击进入新世界 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioT ...

  3. AcWing 第 12 场周赛

    题目链接:Here AcWing 3805. 环形数组 签到题,循环减少出现次数,如果是 cnt[x] = 1 的话加入新的数组中 const int N = 1e3 + 10; int cnt[N] ...

  4. 源码深度解析 Handler 机制及应用

    本文以源码分析+实际应用的形式,详细讲解了 Handler 机制的原理,以及在开发中的使用场景和要注意的地方. 一.基本原理回顾 在 Android 开发中,Handler及相关衍生类的应用经常用到, ...

  5. RabbitMQ的ack机制

    1.什么是消息确认ACK. 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失.为了确保数据不会丢失,RabbitMQ支持消 ...

  6. SpringCloud学习 系列六、服务平滑离线

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...

  7. 11、SpringBoot-mybatis-plus-druid多源数据事务

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  8. The container name "/nacos" is already in use by container

    转载请注明出处: 服务器上使用docker 安装启动 nacos 的时候,报 The container name "/nacos" is already in use by co ...

  9. Web API接口返回实现类集合的姿势了解

    大家好,我是沙漠尽头的狼. 一. 问题描述 如下图,定义两个子类Student和Employ,都继承自抽象类PersonBase: public abstract class PersonBase { ...

  10. ChatGPT-NextWeb部署和调试打造属于自己的GPT

    首先我关注这个项目有一段时间了,不得不说作者和他的社区真的很猛! 首先这个项目截至目前已经有了40.9K的Start了,Fork也已经有了38.1K了,这个数据真的超级牛批了. 那么我们来看一下这款号 ...