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程序代码的几种方法总结
Apr 28 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
django session完成状态保持的方法
Nov 27 Python
Python高级特性与几种函数的讲解
Mar 08 Python
Python生成rsa密钥对操作示例
Apr 26 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
浅析Python requests 模块
Oct 09 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 Python
pytorch 中nn.Dropout的使用说明
May 20 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+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
让 python 命令行也可以自动补全
2014/11/30 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
如何利用cmp命令比较文件
2016/04/11 面试题
高级护理专业大学生求职信
2013/10/24 职场文书
学校总务处领导干部个人对照检查材料思想汇报
2014/10/06 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
小学生心理健康活动总结
2015/05/08 职场文书