Python接口开发实现步骤详解


Posted in Python onApril 26, 2020

一、操作步骤

1. 导入:import flask,json
2. 实例化:api = flask.Flask(__name__)
3. 定义接口访问路径及访问方式:@api.route('/index',methods=['get/post/PUT/DELETE'])
4. 定义函数,注意需与路径的名称一致,设置返回类型并支持中文:def index(): return json.dumps(ren,ensure_ascii=False)
5. 三种格式入参访问接口:
5.1 url格式入参:flask.request.args.get('id')
5.2 form-data格式入参:pwd = flask.request.values.get('pwd')
5.3 josn格式入参:pwd = flask.request.json.get('pwd')
6. 启动服务:api.run(port=8888,debug=True,host='127.0.0.1'),开启服务之后,就可以通过ip+端口+路径+入参访问接口

二、源码举例

#!/usr/bin/python3
# encoding:utf-8
import flask,json
# 实例化api,把当前这个python文件当作一个服务,__name__代表当前这个python文件
api = flask.Flask(__name__) 

# 'index'是接口路径,methods不写,默认get请求     
@api.route('/index',methods=['get']) 
# get方式访问
def index():
  ren = {'msg':'成功访问首页','msg_code':200}
  #json.dumps 序列化时对中文默认使用的ascii编码.想输出中文需要指定ensure_ascii=False
  return json.dumps(ren,ensure_ascii=False)

#post入参访问方式一:url格式参数
@api.route('/article',methods=['post']) 
def article():
  #url格式参数?id=12589&name='lishi'
  id = flask.request.args.get('id')
  
  if id:
    if id == '12589':
      ren = {'msg':'成功访问文章','msg_code':200}
    else:
      ren = {'msg':'找不到文章','msg_code':400}
  else:
    ren = {'msg':'请输入文章id参数','msg_code':-1}
  return json.dumps(ren,ensure_ascii=False)

#post入参访问方式二:from-data(k-v)格式参数
@api.route('/login',methods=['post'])
def login():
  #from-data格式参数
  usrname = flask.request.values.get('usrname')
  pwd = flask.request.values.get('pwd')
  
  if usrname and pwd:
    if usrname =='test' and pwd =='123456':
      ren = {'msg':'登录成功','msg_code':200}
    else:
      ren = {'msg':'用户名或密码错误','msg_code':-1}
  else:
    ren = {'msg':'用户名或密码为空','msg_code':1001}
  return json.dumps(ren,ensure_ascii=False)

#post入参访问方式二:josn格式参数  
@api.route('/loginjosn',methods=['post'])
def loginjosn():
  #from-data格式参数
  usrname = flask.request.json.get('usrname')
  pwd = flask.request.json.get('pwd')
  
  if usrname and pwd:
    if usrname =='test' and pwd =='123456':
      ren = {'msg':'登录成功','msg_code':200}
    else:
      ren = {'msg':'用户名或密码错误','msg_code':-1}
  else:
    ren = {'msg':'用户名或密码为空','msg_code':1001}
  return json.dumps(ren,ensure_ascii=False)

if __name__ == '__main__':
  api.run(port=8888,debug=True,host='127.0.0.1') # 启动服务
  # debug=True,改了代码后,不用重启,它会自动重启
  # 'host='127.0.0.1'别IP访问地址

运行结果

* Serving Flask app "restful" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 249-915-285
* Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)

三、postman访问接口

get方式,无参数访问接口

Python接口开发实现步骤详解

post方式,url格式入参访问接口

Python接口开发实现步骤详解

post方式,form-data格式入参访问接口

Python接口开发实现步骤详解

post方式,josn格式入参访问接口

Python接口开发实现步骤详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
TensorFlow损失函数专题详解
Apr 26 Python
Python利用openpyxl库遍历Sheet的实例
May 03 Python
对python判断是否回文数的实例详解
Feb 08 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
Python类中self参数用法详解
Feb 13 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 #Python
Python request使用方法及问题总结
Apr 26 #Python
Python基于paramunittest模块实现excl参数化
Apr 26 #Python
在python里创建一个任务(Task)实例
Apr 25 #Python
python 实现任务管理清单案例
Apr 25 #Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 #Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 #Python
You might like
php上传文件的增强函数
2010/07/21 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python多线程实现TCP服务端
2019/09/03 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
优秀经理获奖感言
2014/03/04 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
质量提升方案
2014/06/16 职场文书
cf战队收人口号
2014/06/21 职场文书
报效祖国演讲稿
2014/09/15 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
追讨欠款律师函
2015/06/24 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python