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和shell变量互相传递的几种方法
Nov 20 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
Django Highcharts制作图表
Aug 27 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
python多个模块py文件的数据共享实例
Jan 11 Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 Python
Python 列表去重去除空字符的例子
Jul 20 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
Python2.6版本pip安装步骤解析
Aug 17 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引用地址改变变量值的问题
2012/03/23 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
书单|人生苦短,你还不用python!
2017/12/29 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
财务经理岗位职责
2013/11/09 职场文书
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
大家访活动实施方案
2014/03/10 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
实践论读书笔记
2015/06/29 职场文书
高温慰问简报
2015/07/21 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
mysql全面解析json/数组
2022/07/07 MySQL