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中fileno()方法的使用
May 24 Python
利用Python如何生成hash值示例详解
Dec 20 Python
使用Python写一个小游戏
Apr 02 Python
Python numpy 点数组去重的实例
Apr 18 Python
python实现超市扫码仪计费
May 30 Python
python使用插值法画出平滑曲线
Dec 15 Python
python 自动批量打开网页的示例
Feb 21 Python
简单了解django缓存方式及配置
Jul 19 Python
Python列表(list)所有元素的同一操作解析
Aug 01 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
Python输出指定字符串的方法
Feb 06 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 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
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
用PHP查询域名状态whois的类
2006/11/25 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python中的集合类型知识讲解
2015/08/19 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python list与NumPy array 区分详解
2019/11/06 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
项目建议书怎么写
2014/05/15 职场文书
求职信模板
2014/05/23 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
员工安全生产责任书
2014/07/22 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
2014年实习期工作总结
2014/11/27 职场文书
父亲节感言
2015/08/03 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
MySQL七大JOIN的具体使用
2022/02/28 MySQL
Python装饰器详细介绍
2022/03/25 Python