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
Python3里的super()和__class__使用介绍
Apr 23 Python
Python实现豆瓣图片下载的方法
May 25 Python
Python实现程序的单一实例用法分析
Jun 03 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
使用python实现简单五子棋游戏
Jun 18 Python
对Django 转发和重定向的实例详解
Aug 06 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 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
php生成word并下载代码实例
2019/03/15 PHP
Javascript倒计时代码
2010/08/12 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python爬取读者并制作成PDF
2015/03/10 Python
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python scipy卷积运算的实现方法
2019/09/16 Python
Python类的继承super相关原理解析
2020/10/22 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
医学生求职自荐信
2013/10/25 职场文书
个人简历自我评价八例
2013/10/31 职场文书
银行办理业务介绍信
2014/01/18 职场文书
外贸专业求职信
2014/03/09 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
新郎答谢词
2015/01/04 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
详解redis在微服务领域的贡献
2021/10/16 Redis