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 Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
JSON Web Tokens的实现原理
Apr 02 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python中requests和https使用简单示例
Jan 18 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
django用户登录验证的完整示例代码
Jul 21 Python
Django更新models数据库结构步骤
Apr 01 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Python实现壁纸下载与轮换
Oct 19 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入门学习的几个不错的实例代码
2008/07/13 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP实现的简单缓存类
2015/07/29 PHP
js同时按下两个方向键
2007/12/01 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
超市促销实习自我鉴定
2013/09/23 职场文书
银行柜员应聘推荐信范文
2013/11/24 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
谢师宴学生致辞
2015/07/27 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python