Flask接口开发教程
Flask接口开发教程
Flask是一个使用 Python 编写的轻量级 Web 应用框架,很适合个人开发,我们在此处做一个接口。
准备
我们搭建好python环境后使用pip install flask(或者有环境管理工具anaconda等工具的在对应环境导 入)安装第三方库flask。我们使用的时flask模块中的Flask方法,若我么能使用pycharm创建flask项目也 会生成app.py文件,如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():return "Hello, World!"
if __name__ == '__main__':app.run(debug=True)
其中@app.route(’/’)是访问的路径,run()后面是端口号和调试。port是端口号,默认为5000。debug=True,这样改了代码之后,不需要重启服务,会自动重启。浏览器输入127.0.0.1:5000则可访问。
** GET接口**
get接口十分简单,不需要上传任何数据,在路径后面添加一个get方法就可以用,返回的是字符串,但由于我们需要它看起来专业一点,返回一个json格式的数据,我们需要导入json库。如下:
import flask,json
server = flask.Flask(__name__)
@server.route('/index',methods=['get'])
def index():res={'msg':'这是一个接口','msg_dode':0}return json.dumps(res)
if __name__ == '__main__':server.run(port=5001,debug=True)
我们可以用接口测试工具进行测试,postman、apipost之类的,此处用的apipost。
返回数据
这只是一个简单的文本,若是我们想要返回具体的数据呢,我们只需要连到数据库(此处使用的是MySQL),查询到的结果返回来就行了,此处用的第三方库是pymysql,pip
install pymysql安装即可。
import flask,json
import pymysql
server = flask.Flask(__name__)
@server.route('/index/user',methods=['get'])
def index():conn = pymysql.connect(host="127.0.0.1",user ="root", password ="111111",database ="test",charset ="utf8mb4")cursor = conn.cursor()sql ="select Name,Gender from xz_user_table"cursor.execute(sql)result=cursor.fetchall()cursor.close()conn.close()res={}for i in range(0,len(result)):xinxi=result[i]res[xinxi[0]]=xinxi[1]print(res)res={'msg':res,'msg_dode':0}return json.dumps(res)if __name__ == '__main__':server.run(port=5001,debug=True)
可以看到我们只是在中间加了几行代码用于连接数据库和查询,运行后我们再通过apipost调用我们的接口,就可以看到返回的值了。
post接口
到了这里其实差不多也就会了,post接口的就是将methods改为[‘post’],然后flask.request.values.get()方法获取入参,再查询数据,返回出参。在此处模仿的是一个注册功能,数据库中有该用户则提示已有该用户,没有则进行注册。代码如下:
import flask,json
import pymysql
import hashlib
server = flask.Flask(__name__)
@server.route('/index/reg',methods=['post'])
def reg():username=flask.request.values.get('username')pwd=flask.request.values.get('pwd')conn = pymysql.connect(host="127.0.0.1",user ="root", password ="111111",database ="test",charset ="utf8mb4")cursor = conn.cursor()if username and pwd:sql ="select * from tb_user where user_name ='%s'"%usernamea=cursor.execute(sql)if a==1:res={'msg':'用户已存在','msg_dode':0}else:m = hashlib.md5()b = pwd.encode(encoding='utf-8')m.update(b)passwd = m.hexdigest()sql2="insert into tb_user(user_name,mima) values ('%s','%s')"%(username,passwd)cursor.execute(sql2)conn.commit()res={'msg':'注册成功','msg_dode':1} else:res={'msg':'必填字段未填:username或pwd未填,清重新填写','msg_dode':2}return json.dumps(res,ensure_ascii=False)
if __name__ == '__main__':server.run(port=5002,debug=True,host='0.0.0.0')
host=0.0.0.0表示只要在同一个局域网,别人访问的时候,用你的ip就可以访问了。
Flask接口开发教程相关推荐
- flask接口开发快速上手
一.前言 为了让有django或其他python web框架开发经验的同学快速上手flask接口开发,所以有了写这篇文章的想法.本文不会讲理论知识,一切以实用.快速上手为主. 注意:文本只讲前后端分离 ...
- pythonapi接口开发教程_Python-接口开发入门解析
一.开发接口的作用 1.mock接口:模拟一些接口.有一些有关联的接口,在别的接口没有开发好的时候,需要用这个接口,就可以写一个假接口,返回想要的结果来模拟这个接口. 2.知道服务端的开发逻辑,有助于 ...
- 支付宝在线支付接口开发教程
1.什么是第三方支付 所谓第三方支付,就是一些和各大银行签约.并具备一定实力和信誉保障的第三方独立机构提供的交易支持平台.在通过第三方支付平台的交易中,买方选购商品后,使用第三方平台提供的账户进行货款 ...
- 支付宝在线支付接口开发教程与总结
1.什么是第三方支付 所谓第三方支付,就是一些和各大银行签约.并具备一定实力和信誉保障的第三方独立机构提供的交易支持平台.在通过第三方支付平台的交易中,买方选购商品后,使用第三方平台提供的账户进行货款 ...
- python连接微信接口开发教程_Python调用微信公众平台接口操作示例
本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...
- python链接微信接口开发教程_Python调用微信公众平台接口操作示例
本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...
- 微信公众平台API接口开发教程
简介 微信公众平台消息接口为开发者提供了一种新的消息处理方式.微信公众平台消息接口为开发者提供与用户进行消息交互的能力.对于成功接入消息接口的微信公众账号,当用户发消息给公众号,微信公众平台服务器会使 ...
- java接口开发教程,HR的话扎心了
前言 我想,很多人和我一样在煎熬中度过着2021年,也经历了不少困难,随着国家对疫情的控制,互联网行业又重新迎来了生机. 我在2021年拿到了阿里Java研发岗的offer,也算是正式提桶进大厂的打工 ...
- 微信开发教程(4)——高级群发接口
在这篇微信公众平台高级接口开发教程中我们将介绍如何使用接口实现微信公众平台群发功能. 本文分为以下四个部分 准备群发内容 选择群发对象 执行群发 接收群发结果 一.准备群发内容 群发内容可以是文本.图 ...
- API接口开发其实特简单,Python Flask Web 框架教程来了
大家好,日常工作中,无论你是数据工程师.数据挖掘工程师,甚至数据分析人员,都不可避免的与他人进行数据交互,API接口提供数据是最常见的形式. 今天我给大家分享 Python Flask Web 框架教 ...
最新文章
- SpringBoot第二十三篇: 异步方法
- 2021年图灵奖,花落高性能计算先驱、田纳西大学教授Jack Dongarra
- cglib动态代理和jdk动态代理的区别与应用
- 公司技术部门内部的发展变化过程。
- github/gitlab同时管理多个ssh key
- 分压式静态工作点稳定电路
- STM32之内部FLASH原理
- java Set无序集合 HashSet 的对象元素唯一性
- js实现excel块拖拉数据_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...
- ios-UIViewController和魔态视图的应用以及设备支持方向的设置
- powerShell中 diff的使用
- Blog访问量提升秘笈
- 用户权限框架php,ThinkPHP5ACL用户权限模块用法详解
- Oracle 基础笔记4
- CSDN用户数据库泄露事件给我们的启示
- EAGLE转Protel文件
- 小票打印机 linux 驱动下载,POS58小票机驱动下载
- 苹果电脑桌面文件不见了怎么恢复
- adb devices后出现设备offline的解决方法
- egret eui.Button改变文本、背景色及是否可点击
热门文章
- 服务器为啥要搭建在2012系统,WindowsServer2012R2搭建SFTP服务器以及配置
- CSS选择器优先级以及权重计算方法
- win7计算机的蓝牙,手机蓝牙如何与win7电脑连接?win7电脑蓝牙连接手机的方法
- FireMonkey ListView 设计期添加按钮及其 OnClick 事件
- FireMonkey TListView的用法二:ItemAppearance为客制化外观Custom
- 如何查询OS、CPU、内存、硬盘信息
- 免拆破解电信机顶盒TY1208-Z,绝对成功
- Qt+STK项目配置
- macOS如何刷新DNS缓存
- Amesim2016与Matlab2017b联合仿真环境搭建