通过使用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. 为什么 Go 和 Rust 语言都舍弃了继承?

    为什么go和rust语言都舍弃了继承? 舍弃了 Class 舍弃或弱化子类型 类的继承是一段儿弯路 OO 发明了继承,然后发现真正有意义的是 interface 的组合(更准确的说,是 Product ...

  2. 关于 Jupyter 导出 PDF/Latex 格式报错的简单解决方法

    利用 Jupyter 提供的 Print Preview 功能,然后鼠标右键点击打印,就能导出PDF了,而且不会出问题,中文,图片都可以

  3. Android 3分钟带你入门开发测试

    作者:Zhu Yifei 作为一名合格的开发人员,基本的开发测试能力必不可少,开发测试分单元测试和UI测试,通过开发测试可以减少开发人员自测时间,提升开发质量.本篇文章可以帮助初级开发人员快速了解开发 ...

  4. 最全!即学即会 Serverless Devs 基础入门(下)

    作者 | 刘宇(阿里云 Serverless 产品经理) 在上篇<最全!即学即会 Serverless Devs 基础入门>中,我们阐述了工具链的重要性,并对安装方式 & 密钥配置 ...

  5. vue学习笔记 五、创建子组件实例

    系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...

  6. Flume原理及使用案例

    本文为转载篇!原文: https://www.cnblogs.com/zhangyinhua/p/7803486.html https://www.cnblogs.com/ciade/p/549521 ...

  7. P2234

    乐死我了,一道需要用平衡树的算法的题,在我忘了看标签的情况下下意识用了一个普及-难度的超简单思路解决了.当然其中加入了一些半骗分半贪心性质的剪枝. 总之这破算法竟然AC了就离谱,乐死我了 Code # ...

  8. poj 3268 最短路

    ***题意:在x这个点有个聚会,其他的点要到x这个点,然后再会自己原始的点,求一来一回最大的那个距离 做法:两边dijstra算法,因为是单向图,要注意更新顺序*** #include<iost ...

  9. electron打包,使用electron-packager

    构建项目可以使用electron-forge构建,但是这个东西打包比较坑,mac运行报错,win下会有缓存机制,也就是热更新无效 所以选择使用electron-packager打包 sudo npm ...

  10. JMS微服务开发示例(四)把配置文件appsettings.json 部署在网关,共享给其他相同的微服务

    通常,多个相同的微服务器,它们的appsettings.json配置文件的内容都是一样的,如果,每次修改配置文件,都要逐个替换,那就太繁琐了,我们可以利用网关的文件共享功能,实现配置文件的统一更新. ...