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 相关文章推荐
python字符串str和字节数组相互转化方法
Mar 18 Python
Python虚拟环境项目实例
Nov 20 Python
Python使用三种方法实现PCA算法
Dec 12 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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
Mysql的常用命令
2006/10/09 PHP
一个显示天气预报的程序
2006/10/09 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
tensorflow 获取变量&打印权值的实例讲解
2018/06/14 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
python之文件读取一行一行的方法
2018/07/12 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
有模特经验的简历自我评价
2013/09/19 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
中秋节晚会开场白
2015/05/29 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
青岛市的收音机研制与生产
2022/04/07 无线电