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 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
python操作 hbase 数据的方法
Dec 18 Python
使用python爬取B站千万级数据
Jun 08 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
Python整数对象实现原理详解
Jul 01 Python
Django model update的多种用法介绍
Mar 28 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
基于Python的Jenkins的二次开发操作
May 12 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
python 爬虫如何正确的使用cookie
Oct 27 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 5.5版本的array_column()函数
2014/10/24 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
详解js类型判断
2018/05/22 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
苹果Mac升级:MacSales.com
2017/11/20 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
即兴演讲稿
2014/01/04 职场文书
宿舍违规检讨书
2014/01/12 职场文书
岗位职责说明书
2014/05/07 职场文书
新党章心得体会
2014/09/04 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
Redis 异步机制
2022/05/15 Redis