🍖Flask请求对象与响应对象
一.请求对象
from flask import Flask,request,render_template,redirect,make_response
app = Flask(__name__)
@app.route('/',methods=['get',"POst"])
def test():
print(request.method) # 获取请求方式
print(request.args) # 获取get请求数据
print(request.form) # 获取post请求数据(不包含文件数据)
print(request.values) # 包含get请求,post请求数据
print(request.cookies) # 获取客户端携带的cookie
print(request.headers) # 获取请求头中所携带的数据
print(request.path) # 获取不带域名只带参数的请求路径
print(request.full_path) # 获取不带域名的但携带"?"后参数的路径
print(request.script_root) #
print(request.url) # 获取请求路径http://127.0.0.1:5000/
print(request.base_url) # 获取请求路径http://127.0.0.1:5000/
print(request.url_root) # 获取请求路径http://127.0.0.1:5000/
print(request.host_url) # 获取请求路径http://127.0.0.1:5000/
print(request.host) # 获取当前请求用户IP和port: 127.0.0.1:500
print(request.files) # 获取文件数据
return 'ok'
if __name__ == '__main__':
app.run()
ps : 在Flask中 request 是一个全局变量, 而在 Django 中是每一个视图函数都有一个 request 对象, 为什么在flask中使用request不会混乱呢? 一定是Flask帮我们处理了这个问题, 后面讲解
二.响应对象
from flask import Flask,request,render_template,redirect,jsonify,make_response
app = Flask(__name__)
@app.route('/',methods=['get',"POst"])
def test():
# return 'ok' # 直接返回字符串,支持返回HTML标签
# return render_template('index.html',locals()) # 渲染一个HTML页面,并可以将数据传入
# return redirect('/index.html') # 重定向到某个页面
# return jsonify({"k1":"v1"}) # 返回json格式数据(Django中使用JsonResponse)
# 返回response对象
response = make_response("Hello word!")
# 在response中操作cookie
response.set_cookie("name","shawn") # 设置cookie : key-value
# response.delete_cookie('name') # 删除cookie
# 设置响应头
response.headers['NAME'] = "I am Shawn!"
# response是flask.wrapper中Response的对象
print(type(response)) # <class 'flask.wrappers.Response'>
from flask.wrappers import Response
return response
if __name__ == '__main__':
app.run()
- 浏览器cookie
- 响应头 Response Headers