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 相关文章推荐
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
简单谈谈Python中的闭包
Nov 30 Python
Python 错误和异常代码详解
Jan 29 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
Python for循环中的陷阱详解
Jul 13 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python基础之错误和异常处理
Oct 24 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
PHP实现百度人脸识别
2019/05/06 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
vue观察模式浅析
2018/09/25 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python面向对象类的继承实例详解
2018/06/27 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
商场主管竞聘书
2014/03/31 职场文书
医学求职信
2014/05/28 职场文书
企业理念标语
2014/06/09 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS