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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
跟老齐学Python之从格式化表达式到方法
Sep 28 Python
python记录程序运行时间的三种方法
Jul 14 Python
Python 多线程的实例详解
Sep 07 Python
python实现遍历文件夹修改文件后缀
Aug 28 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
Django中自定义查询对象的具体使用
Oct 13 Python
Python实现打印实心和空心菱形
Nov 23 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
js实现简单计算器
2015/11/22 Javascript
javascript每日必学之循环
2016/02/19 Javascript
angular2使用简单介绍
2016/03/01 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
python实现发送邮件功能代码
2017/12/14 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
python os.rename实例用法详解
2020/12/06 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
Prototype是怎么扩展DOM的
2014/10/01 面试题
营销总监岗位职责范本
2014/02/26 职场文书
社区戒毒工作方案
2014/06/04 职场文书
环保志愿者活动方案
2014/08/14 职场文书
服务员态度差检讨书
2014/10/28 职场文书
骨干教师事迹材料
2014/12/17 职场文书
2015年度保密工作总结
2015/04/24 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
HTML+JS实现在线朗读器
2022/02/15 Javascript