赞
踩
请求上下文:
1.request包含args,data,cookie等
2.session用于存储,敏感的用户信息
request中包含很多的属性,可以通过‘.’的方式将其取出,主要有method(请求方式)、form(表单数据)、args(传递的参数)、data(请求正文)、file(传递的文件)等
注:request传递的文件可以通过request.files.get(‘文件名’)取出,因为这样不会报错,没有该文件的话返回的是None,还可以将其.save(‘路径’)指定保存路径
session存储方式:
1、直接存在客户端的cookie中
2、存在服务端,mysql,redis,mongodb……
#设置cookie,设置生命周期 @app.route('/set_cookie',methods=['GET','POST']) def set_cookie(): response_obj = make_response() response_obj.headers['X-Parachutes'] = 'parachutes are cool' response_obj.set_cookie('name','sjl',max_age=3600) return response_obj #获取cookie @app.route('/get_cookie') def get_cookie(): print(request.cookies) #取值,没有默认为None print(request.cookies.get('age','找不到')) return 'ok' #设置session @app.route('/set_session') def set_session(): session['hello']='python' return 'ok' #获取session @app.route('/get_session') def get_session(): print(session.get('hello')) return 'ok'
在设置session的时候必须要设置app.secret_key
应用程序中的变量
有current_app
#为current_app赋值
@app.route('/getname')
def app_info():
current_app.test='python'
return current_app.name
#取出刚才赋值的内容
@app.route('/newname')
def app_info_new():
return current_app.test
current_app和g都属于应用上下文对象。
current_app:表示当前运行程序文件的程序实例。
g:处理请求时,用于临时存储的对象,每次请求都会重设这个变量。比如:我们可以获取一些临时请求的用户信息。
当调用app = Flask(name)的时候,创建了程序应用对象app;
request 在每次http请求发生时,WSGI server调用Flask.call();然后在Flask内部创建的request对象;
app的生命周期大于request和g,一个app存活期间,可能发生多次http请求,所以就会有多个request和g。
最终传入视图函数,通过return、redirect或render_template生成response对象,返回给客户端。
区别:
请求上下文:保存了客户端和服务器交互的数据。
应用上下文:在flask程序运行过程中,保存的一些配置信息,比如程序文件名、数据库的连接、用户信息等。
首先将app=Flask(name)的app传给管理器
manger = Manager(app)
然后将入口方法改为
if __name__=='__main__':
manger.run()
即可
然后我们可以在终端(在工作空间中)通过
python 该文件名.后缀 runserver --port+(端口号,默认5000)
启动该文件
也可以通过python 该文件名.后缀 runserver --help查看使用的方法
@app.route('/index')
def index():
dict1 = {
'name':'zhang',
'age':18
}
list1=[4,5296,126,12,3,1,85,52]
return render_template('index.html',list1=list1,dict1=dict1)
上述代码块,我向index.html页面传递了两个参数
然后在html页面我进行如下操作
{{ dict1['name'] }}//获取name的值,zhang
{{ dict1.name }}//获取name的值,zhang
<h1>过滤器</h1>
{#{{ 变量|过滤器 }}#}
{{ dict1.name|upper|reverse}}//获取name的值,并且全部大写然后反向输出,GNAHZ
{{ '<div>hello</div>'| upper }}//大写,<DIV>HELLO</DIV>
{{ '<div>hello</div>'| safe | upper }}//大写,标签起作用,HELLO
{{ list1 | sort }}//排序
{{ list1 | length }}//列表长度
{{ list1 | sum }}//列表求和
{{ list1 | first }}//列表第一个数字
{{ list1 | last }}//列表最后一个数字
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。