Flask接口开发教程

您所在的位置:网站首页 怎么用python写app Flask接口开发教程

Flask接口开发教程

2024-01-18 05:20| 来源: 网络整理| 查看: 265

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。

我们可以用接口测试工具进行测试,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'"%username a=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就可以访问了。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3