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编写爬虫的基本模块及框架使用指南
Jan 20 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
Python三级菜单的实例
Sep 13 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
python脚本实现验证码识别
Jun 07 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python面向对象类的继承实例详解
Jun 27 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
在Python中实现函数重载的示例代码
Dec 12 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
Python虚拟环境项目实例
2017/11/20 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python怎么调用自己的函数
2020/07/01 Python
Python里面search()和match()的区别
2016/09/21 面试题
广告学专业应届生求职信
2013/10/01 职场文书
英文道歉信
2015/01/20 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
法制主题班会教案
2015/08/13 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
python随机打印成绩排名表
2021/06/23 Python