request请求参数
request.method
: 判断请求的方式 GET、POST
from flask import request
就是 Flask 中表示当前请求的 request 对象,request对象中保存了一次HTTP请求的一切信息。
request.args.get()
请求时,记录请求中的所有的参数,返回一个类字典格式数据类型。get请求是获取参数
request.form.post()
请求时, 记录请求中的所有的参数,返回一个类字典格式数据类型。post请求是获取请求体中参数
from flask import Flask,request,render_template
app=Flask(__name__)
#获取get请求参数
@app.route('/get_method')
def get_method():
#get方式访问,使用args参数获取内容
#args:是一个类字典格式的数据,可以按照字典来使用
name=request.args.get('name')
age=request.args.get('age')
return 'get_method...name:{},age{}'.format(name,age)#name和age的值在地址栏输入
#获取post请求参数
@app.route('/login',methods=['GET','POST'])
def post_method():
if request.method=='POST':
"""post请求"""
#request.form:可以当做字典使用
username=request.form.get('username')
password=request.form.get('password')
if username=='zs'and password=='123':
return 'success'
return render_template('login.html')
if __name__ == '__main__':
app.run()
cookie
你可以通过 cookies 属性来访问 Cookies,用响应对象的 set_cookie 方法来设置 Cookies。请求对象的 cookies 属性是一个内容为客户端提交的所有 Cookies 的字典。如果你想使用会话,请不要直接使用 Cookies,请参考 会话 一节。在 Flask 中,已经注意处理了一些 Cookies 安全细节。
from flask import Flask,make_response,request
app=Flask(__name__)
@app.route('/set_cookie')
def set_cookie():
response=make_response('sucess!!!')
#1.设置cookie
response.set_cookie('name','zs')
response.set_cookie('age','18')
#max_age:单位是s
response.set_cookie('weight','160',max_age=3600)
return response
#获取cookie
@app.route('/get_cookie')
def get_cookie():
weight=request.cookies.get('weight')
age=request.cookies.get('age')
name=request.cookies.get('name')
return 'name:{},age:{},weight:{}'.format(name,age,weight)
#删除cookie
@app.route('/delete_cookie')
def delete_cookie():
response=make_response('sucess')
response.delete_cookie('weight')#删除cookie
return response
if __name__ == '__main__':
app.run()
Cookies 是设置在响应对象上的。由于通常视图函数只是返回字符串,之后 Flask 将字符串转换为响应对象。如果你要显式地转换,你可以使用make_response() 函数然后再进行修改。
session
- 配置
SECRET_KEY
因为flask的session是通过加密之后放到了cookie中。所以有加密就有密钥用于解密,所以,只要用到了flask的session模块就一定要配置“SECRET_KEY”这个全局宏。一般设置为24位的字符。
from flask import Flask
app=Flask(__name__)
#1对session内容进行加密,内容可以随便写
app.config['SECRET_KEY']='123'
- 操作session就如同操作字典!
#导入session对象
from flask import session
@app.route('/set_session')
#设置session
def set_session():
#设置session
session['name']='zs'
session['age']='18'
return 'sucess'
@app.route('/get_session')
#获取session
def get_session():
name=session.get('name')
age=session.get('age')
return 'name-->{},age-->{}'.format(name,age)
#主要flask的session存放在cookie中,关闭浏览器,就会消失
@app.route('/delelte_session')
#删除session
def delelte_session():
session.pop('name')
name=session.get('name')
return 'name-->{}'.format(name)
if __name__ == '__main__':
app.run(debug=True)
- 设置session的过期时间
如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结。session.permanent = True
在flask下则可以将有效期延长至一个月。下面有方法可以配置具体多少天的有效期。
- 如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结束
- 如果设置了session的permanent属性为True,那么过期时间是31天。
可以通过给app.config设置PERMANENT_SESSION_LIFETIME
来更改过期时间,这个值的数据类型是datetime.timedelay
类型。