flask请求响应
7.请求响应
from flask import Flask
from flask import request
from flask import render_template
from flask import redirect
from flask import make_response
app = Flask(__name__)
@app.route('/login.html', methods=['GET', "POST"])
def login():
# 请求相关信息
# request.method
#request.POST['xxx'] 与 request.GET['xxx'] 的内容不可修改,内部源码做了一个断言
#如果修改了就引起报错,如果想要修改的话需要把它转成字典或者深拷贝。
# request.args
# request.form
# request.values (args,form)
# request.cookies
# request.headers
# request.path 根路径
# request.full_path 域名后的全路径
# request.script_root  
# request.url 全路径
# request.base_url 基础路径
# request.url_root 基础路径
# request.host_url 基础路径
# request.host 无http的基础路径
# request.files
# obj = request.files['the_file_name']
# obj.save('/var/www/uploads/' + secure_filename(f.filename))
# 响应相关信息
# return "字符串"
# return render_template('html模板路径',**{})
# return redirect('/index.html')
#return jsonify({'k1':'v1'})
# response = make_response(render_template('index.html'))
# response是flask.wrappers.Response类型
# response.delete_cookie('key')
# response.set_cookie('key', 'value')
# response.headers['X-Something'] = 'A value'
# return response
return "内容"
if __name__ == '__main__':
app.run()
8.session
除请求对象之外,还有一个 session 对象。它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥。 (app.session_interface对象)
设置:session['username'] = 'xxx'
删除:session.pop('username', None)
分析
入口:app.session_interface
session modify 在session对象set_item和delete_item的内置方法中,设置一个flag只要被调用了 就把session.modified 设置为true,然后把原cookie删除了再重新赋值。