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'"%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就可以访问了。
Original: https://blog.csdn.net/yidaogggg/article/details/112372085
Author: xiang_gong_a
Title: Flask接口开发教程
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/748809/
转载文章受原作者版权保护。转载请注明原作者出处!