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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
Python中的面向对象编程详解(下)
Apr 13 Python
Python正则表达式教程之二:捕获篇
Mar 02 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python 动态调用函数实例解析
Oct 21 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
详解python破解zip文件密码的方法
Jan 13 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 Python
python之随机数函数的实现示例
Dec 30 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
python调试工具Birdseye的使用教程
May 25 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
页面乱码问题的根源及其分析
2013/08/09 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
React优化子组件render的使用
2019/05/12 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
Apache如何部署django项目
2017/05/21 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
经贸韩语专业大学生职业规划
2014/02/14 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
项目经理岗位职责
2015/01/31 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
同学聚会感言一句话
2015/07/30 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android