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计算方程式根的方法
May 07 Python
django框架如何集成celery进行开发
May 24 Python
Python之列表的插入&替换修改方法
Jun 28 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
Python读取csv文件实例解析
Dec 30 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
python怎么判断素数
Jul 01 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
全网最全python库selenium自动化使用详细教程
Jan 12 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
document.getElementById介绍
2011/09/13 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python实现斐波那契递归函数的方法
2014/09/08 Python
python实现给字典添加条目的方法
2014/09/25 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
在Python中使用HTML模版的教程
2015/04/29 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
项目经理任命书
2014/06/04 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
食堂管理制度范本
2015/08/04 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL
分享python函数常见关键字
2022/04/26 Python