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入门篇之面向对象
Oct 20 Python
python查看zip包中文件及大小的方法
Jul 09 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
python re库的正则表达式入门学习教程
Mar 08 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
如何表示python中的相对路径
Jul 08 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
python数字图像处理数据类型及颜色空间转换
Jun 28 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
MYSQL数据库初学者使用指南
2006/11/16 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
常用的javascript设计模式
2017/01/11 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
TensorFlow的权值更新方法
2018/06/14 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
python实现推箱子游戏
2020/03/25 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
南京软件公司的.net程序员笔试题
2014/08/31 面试题
大学学习个人的自我评价
2014/02/18 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android