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的类方法和静态方法
Dec 13 Python
python简单获取数组元素个数的方法
Jul 13 Python
python利用Guetzli批量压缩图片
Mar 23 Python
简单了解python的一些位运算技巧
Jul 13 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
详解pandas映射与数据转换
Jan 22 Python
python中子类与父类的关系基础知识点
Feb 02 Python
Python获取百度热搜的完整代码
Apr 07 Python
Python Django项目和应用的创建详解
Nov 27 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
PHP 文件缓存的性能测试
2010/04/25 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
安装vue-cli的简易过程
2018/05/22 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python实现粒子群算法的示例
2021/02/14 Python
如何写出高性能的JSP和Servlet
2013/01/22 面试题
技校毕业生的自我评价
2013/12/27 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android