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和C++求解方法
Aug 20 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
学习和使用python的13个理由
Jul 30 Python
Python3 合并二叉树的实现
Sep 30 Python
python学生信息管理系统实现代码
Dec 17 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
python图片指定区域替换img.paste函数的使用
Apr 09 Python
Python使用DFA算法过滤内容敏感词
Apr 22 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循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
python 实现识别图片上的数字
2019/07/30 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
中医专业应届生求职信
2013/11/17 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
领导视察欢迎词
2014/01/15 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
英语辞职信范文
2015/02/28 职场文书
新闻报道稿范文
2015/07/23 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS