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程序员开发中常犯的10个错误
Jul 07 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
python访问系统环境变量的方法
Apr 29 Python
python实现中文输出的两种方法
May 09 Python
Python实现统计代码行的方法分析
Jul 12 Python
mysql 之通过配置文件链接数据库
Aug 12 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
python中怎么表示空值
Jun 19 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 Python
基于python实现银行管理系统
Apr 20 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将任何格式视频转为flv的代码
2009/09/03 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
js中function()使用方法
2013/12/24 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
Bootstrap基本组件学习笔记之进度条(15)
2016/12/08 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
pandas的resample重采样的使用
2020/04/24 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
医院院务公开实施方案
2014/05/03 职场文书
会计系毕业生求职信
2014/05/28 职场文书
公司领导班子对照材料
2014/08/18 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
师范生教育见习总结
2015/06/23 职场文书
入党心得体会
2019/06/20 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis