Python实现Restful API的例子


Posted in Python onAugust 31, 2019

最近写了一个网络验证登录的爬虫,需要发布为Rest服务,然后发现Flask是一个很好的Web框架,使用Python语言实现。

1. 安装flask

pip install flask

2.编写简单的HelloWorld

app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
  return "Hello, World!"

if __name__ == '__main__':
  app.run(debug=True)

3.实现登录验证Rest服务

login.py 是用爬虫写好的登录模块类

from flask import Flask
from flask import request

from login import Context
from login import NormalLogin

app = Flask(__name__)

@app.route('/cm/api/v1.0/verifyuser', methods=['POST'])
def verifyUser():
  error = None
  if request.method == 'POST':
    login = NormalLogin()
    ctx = Context(login)
    page = ctx.login(request.form['studentId'],
        request.form['password'])
    if page == "success":
      return "success, 验证成功"

  return "failed, 验证失败"

if __name__ == '__main__':
  app.run(debug=True)

启动web服务,python app.py

在浏览器输入http://127.0.0.1:5000/即可看到Hello, World!

另外对于POST方法的测试,用浏览器就不太方便了,可以在Linux中安装curl工具来进行测试,或者使用一些专门的GUI程序,比如Postman

curl -d "studentId=123456&password=123456" "http://127.0.0.1:5000/cm/api/v1.0/verifyuser"

以上这篇Python实现Restful API的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
Python标准库之Sys模块使用详解
May 23 Python
python获得文件创建时间和修改时间的方法
Jun 30 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
python实现用户名密码校验
Mar 18 Python
对python pandas中 inplace 参数的理解
Jun 27 Python
Python 读取位于包中的数据文件
Aug 07 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 Python
Python可视化神器pyecharts绘制水球图
Jul 07 Python
python递归下载文件夹下所有文件
Aug 31 #Python
python或C++读取指定文件夹下的所有图片
Aug 31 #Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 #Python
Django项目后台不挂断运行的方法
Aug 31 #Python
python遍历文件目录、批量处理同类文件
Aug 31 #Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 #Python
python批量处理文件或文件夹
Jul 28 #Python
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
js中作用域的实例解析
2017/03/16 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
python多线程之事件Event的使用详解
2018/04/27 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
应届毕业生求职信
2013/11/30 职场文书
2014年大学生自我评价
2014/01/19 职场文书
水电工岗位职责
2014/02/12 职场文书
给校长的一封建议书
2014/03/12 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
芙蓉镇观后感
2015/06/10 职场文书
升学宴来宾致辞
2015/07/27 职场文书
大学生创业计划书
2019/06/24 职场文书