Flask Response及Request

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from flask import Flask, render_template, redirect, jsonify, send_file, request

app = Flask(__name__)


@app.route('/')
def hello_world():
# return 'Flask Hello'
return redirect("/login")


@app.route('/login', methods=["GET", "POST"])
def login():
# print("method:", request.method)
# print("form:", request.form.to_dict())
# print(request.form.get("username"))
# print("get", request.args)
# print(request.args.get("username"))
# print(request.path)
print(request.url)
print(request.host)
print(request.host_url)
# print(request.json)
# print(request.data)
# print(request.values)
# print(request.values.to_dict())
# print(request.cookies)
# print(request.headers)
if request.method == "POST":
# if request.form.get("username") == "ropon" and request.form.get("password") == "123":
# return "登录成功"
# else:
# return "用户名或密码错误"
# my_file = request.files.get("my_file")
# my_file.save(my_file.filename)
return "test"

return render_template("login.html")


@app.route('/jsontest')
def jsontest():
return jsonify({"name": "ropon", "age": 18})


@app.route('/filetest')
def filetest():
return send_file("11.mp4")


if __name__ == '__main__':
app.run()

# 总结
# 使用前需要先导入
# django flask
# HttpResponse("字符串") return "字符串"
# render("模板文件) render_template("模板文件")
# redirect("重定向URL") redirect("重定向URL")

# 额外新增
# jsonify("") 返回标准json字符串
# send_file("") 返回文件内容(自动识别文件类型)

# request.method 请求方式
# request.form 获取formdata中的数据 to_dict() 序列化成字典
# request.args 获取URL中的数据 to_dict() 序列化成字典
# request.values 获取formdata,URL中的数据 URL中数据会覆盖formdata中的数据,不要使用to_dict()
# request.url 获取访问的完整路径
# request.host 获取主机地址
# request.host_url 获取加协议主机地址
# request.path 获取路由地址
# request.json 获取json数据,也就是说请求头中Content-Type:application/json
# request.data 获取原始数据 byte
# request.cookies 获取cookie中的数据
# request.headers 获取请求头
# request.files 获取上传文件信息,通过save(file_obj.filename)方法保存,注意form表单配置enctype="multipart/form-data"