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中处理XML的教程
Apr 29 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
tensorflow 加载部分变量的实例讲解
Jul 27 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
python使用列表的最佳方案
Aug 12 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
Python接口自动化测试框架运行原理及流程
Nov 30 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中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
PHP常用技巧汇总
2016/03/04 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
python求斐波那契数列示例分享
2014/02/14 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
服务标语大全
2014/06/18 职场文书
微笑服务标语
2014/06/24 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL