response.data:获取二进制的响应body数据
response.data = ‘xxx’ :设置响应body数据
response.calculate_content_length:获取响应的总字节数
response.header:获取响应对象的头部信息
response.status:获取字符串格式的响应状态码
response.status_code:获取int格式的响应状态码
response.freeze():将响应对象序列化,返回None
response.set_cookie():设置cookie(重点)
response.delete_cookie():删除cookie,将cookie设置为立即失效(重点)
用Cookie进行信息展示
@admin.route('/login',methods=['POST','GET'])
def login():
return render_template('login/login.html')
@admin.route('/report')
def report():
return render_template('report/member.html', username=username)
<input id="" name="username" type="text" placeholder="账户" class="input-text size-L">
<input id="" name="password" type="password" placeholder="密码" class="input-text size-L">
<form class="form form-horizontal" action="{{ url_for('admin.login') }}" method="post">
@admin.route('/login',methods=['POST','GET'])
def login():
if request.method == 'POST':
# username = request.form.get('username') #这里不能用单引号,否则获取为None
# password = request.form.get('password') #这里不能用单引号,否则获取为None
username = request.form.get("username")
password = request.form.get("password")
print(username+''+password)
return render_template('login/login.html')
@admin.route('/login',methods=['POST','GET'])
def login():
if request.method == 'POST':
username = request.form.get("username")
password = request.form.get("password")
print(username+" "+password)
#简单的表单验证,如果账号密码为空,报错,否则登录成功!
if username is None or len(username) < 1:
return '请输入正确的用户名'
if password is None or len(password) < 1:
return '请输入正确的密码'
return render_template('login/login.html')
response = Response("欢迎你%s" %username)
return response@admin.route('/login',methods=['POST','GET'])
def login():
if request.method == 'POST':
username = request.form.get("username")
password = request.form.get("password")
print(username+" "+password)
#简单的表单验证,如果账号密码为空,报错,否则登录成功!
if username is None or len(username) < 1:
return '请输入正确的用户名'
if password is None or len(password) < 1:
return '请输入正确的密码'
response = Response("欢迎你%s" %username)
return response
return render_template('login/login.html')
@admin.route('/login',methods=['POST','GET'])
def login():
if request.method == 'POST':
username = request.form.get("username")
password = request.form.get("password")
print(username+" "+password)
#简单的表单验证,如果账号密码为空,报错,否则登录成功!
if username is None or len(username) < 1:
return '请输入正确的用户名'
if password is None or len(password) < 1:
return '请输入正确的密码'
# response = Response("欢迎你%s" %username)
#return response
response = redirect(url_for('admin.report')) #创建一个响应,重定向
response.set_cookie('username', username) #设置cookie的方法
return response
# session['username'] = username #设置session的方法
# return redirect(url_for('admin.report'))
return render_template('login/login.html')
@admin.route('/report',methods=['POST','GET'])
def report():
username = request.cookies.get('username')
print(username)
return render_template('report/member.html',username=username) #传到视图
在member.html处admin改为变量代码块使用我们的username
<li class="dropDown dropDown_hover"> <a href="#" class="dropDown_A">{{ username }} <i class="Hui-iconfont">i>a>
@admin.route('/logout',methods=['POST','GET'])
def logout():
response = redirect(url_for('admin.login'))
response.delete_cookie('username')
return response
默认关闭浏览器cookie过期
先尝试登录,然后直接进入member页,名字为None
response.set_cookie('username', username,max_age=3600) #设置cookie的方法,过期时间(秒)
@admin.route('/login',methods=['POST','GET'])
def login():
if request.method == "GET":
return render_template('login/login.html')
elif request.method == "POST":
username = request.form.get("username")
password = request.form.get("password")
# response = make_response()
if username is None or len(username) < 1:
return '请输入正确的用户名'
if password is None or len(password) < 1:
return '请输入正确的密码'
#response = Response('登录成功%s' %username)
#response.set_cookie('username', username)
# session的方式
session['username'] = username
return redirect(url_for('admin.report'))
#在浏览器检查看看respon
# return response
@admin.route('/report',methods=['POST','GET'])
def report():
#username = request.cookies.get('username');
username = session.get('username')
print(username)
if username is None:
return redirect(url_for('admin.login'))
return render_template('report/member.html', username=username)
session F12查看session
@admin.route('/logout',methods=['POST','GET'])
def logout():
response = redirect(url_for('admin.login'))
session.pop('username',None) #session注销
#response.delete_cookie('username')
return response
设置session有效期:如果没有设置session的有效期。那么默认就是浏览器关闭后过期。如果设置session.parmanent=True,那么就会默认31天后过期。如果不想在31天后过期,那么可以设置app.config[‘PERMANENT_SESSION_LIFETIME’]= timedelta(hour=2),可以指定多久后过期(比如:2小时)
cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前是哪个用户了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4kb。因此使用cookie只能存储一些小量的数据。
cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前是哪个用户了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4kb。因此使用cookie只能存储一些小量的数据。
session:session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,存储一些session信息还是绰绰有余的。