介绍
flask是一个使用python编写的轻量级web应用框架,让我们可以使用python快速实现一个网站或者api服务。
运用场景:
flask框架实现的web应用类型:博客应用,聊天应用、仪表盘、RESTAPI、管理页面、邮件服务等。
安装
安装:pip install Flask
接口要素
- 接口地址:域名、路径
- 方式
- 请求参数:请求头、入参
- 接口业务逻辑
- 响应:格式:文本、json、xml、html
简单示例
# 导包
from flask import Flask
# 固定格式 实例化
app = Flask(__name__)
# 路由
@app.route("/index",methods=["GET"])
def index():
return "hello"
if __name__ == '__main__':
# 启动服务
app.run()
返回响应结果的不同类型
返回文本
@app.route("/index",methods=["GET"])
def index():
return "hello"
返回html
from flask import Flask, render_template
@app.route("/index", methods=["GET"])
def index():
return render_template('index.html')
要点:
index.html需要放在templates文件夹下
导包需要导入render_template
返回json
from flask import Flask, render_template,jsonify
@app.route("/json", methods=["GET"])
def json():
return jsonify({
"name":"ltx",
"role":"admin"
})
获取请求参数
get方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是一个html页面</h1>
<form action="http://127.0.0.1:5000/reg" method="get">
用户名:<input name="name">
<br>
密码:<input type="password" name="pwd">
<br>
<input type="submit">
</form>
</body>
</html>
@app.route("/reg", methods=["GET"])
def reg():
data = request.args
print(data)
return jsonify({
"code": 200,
"msg": "success"
})
接口业务逻辑
@app.route("/reg", methods=["GET"])
def reg():
data = request.args
print("请求数据:{}".format(data))
name= data["name"]
pwd=data["pwd"]
if len(name)>4 and len(pwd)>6:
return jsonify({
"code": 200,
"msg": "注册成功"
})
else:
return jsonify({
"code": 200,
"msg": "注册失败,用户名需大于4位或密码需大于6位"
})
要点:jsonify返回中文时,在web实现为编码。解决:
在app实例化后,新增一行配置app.config['JSON_AS_ASCII'] = False
获取请求参数
post方法 :form表单
data = request.form
print("请求数据:{}".format(data))
name= data["name"]
pwd=data["pwd"]
post方法 :json格式入参
@app.route("/login", methods=["POST"])
def login():
data = request.json
print("请求数据:{}".format(data))
print(data["name"])
print(data["pwd"])
return jsonify({
"code": 200,
"msg": "登录成功"
})
image.png