flask模板

这篇博客探讨了Flask框架中与请求挂钩的函数、保持用户状态的方法,如cookies和session的使用,以及请求上下文的概念。还详细讲解了Jinja2模板渲染,包括自定义过滤器、条件语句、循环、宏和模板继承等特性,并介绍了Flask_script的用途。同时,提到了Flask特有的变量和函数,如flash用于消息闪现。
摘要由CSDN通过智能技术生成

请求的钩子函数

# -*- coding:gbk -*-
from flask import Flask,request

app = Flask(__name__)

@app.route('/',methods=['GET','POST'])
def index():
    print('DDOS')
    return 'index'

@app.before_first_request
def before_first_request():
    print('before_first_request')

@app.before_request
def before_request():
    print('before_request')
    # return u'哈哈'

@app.after_request
def after_request(response):
    print('after_request')
    return response

@app.teardown_request
def teardown_request(e):
    print('teardown_request%s')%e

if __name__ == '__main__':
    app.run(debug=True)

----------------
返回结果:
before_first_request
before_request
DDOS
after_request
teardown_requestNone
第二次访问结果:
before_request
DDOS
after_request
teardown_requestNone

打开before_request函数的‘哈哈’注释运行,直接跳过index函数,运行结果:
before_first_request
before_request
after_request
teardown_requestNone
浏览器中显示:哈哈

保持状态

创建cookie

from flask import Flask,make_response
@app.route('/set_cookie',methods=['GET','POST'])
def set_cookie():
    response = make_response('this is a cookie')
    response.set_cookie('name','wxx',3600)#3600为过期时间
    response.headers["Set-Cookie"] = "name1=naxyl; Expires=Tue, 28-Nov-2017 08:19:03 GMT; Max-Age=3600; Path=/set_cookie"
    return response
-----
ps:
naxyl='南安小淫龙'

获取cookie

from flask import Flask,request
@app.route('/get_cookie',methods=['GET','POST'])
def get_cookie():
    name = request.cookies['name']
    return name

删除cookie

from flask import Flask,make_response
@app.route("/delete_cookie")
def delete_cookie():
    response = make_response("delete success")
    # 删除cookie,实质上是设置cookie的过期时间和创建时间一样,不是物理删除
    response.delete_cookie("name")
    return response

创建session

from flask import  Flask,session

# app.config["SECRET_KEY"] = "asdfjksadjfa"

app.secret_key = "C37hpKSbH0LSCNVyZWk9CQieQeJVPv5/0IYyuvnIPgI3Uzq+70T2BV5G9vP1fvx4"#两者都可以

@app.route('/set_session',methods=['GET','POST'])
def set_session():
    session['age']=12
    return 'OK'
#session存储在redis中
#session在浏览器中是依托于cookie的,假如用户设置禁止接收cookie时,可以存在url地址当中

获取session

from flask import Flask ,session
@app.route('/get_session',methods=['GET','POST'])
def get_session():
    age = session.get('age')
    return "%d"%age

请求上下文

上下文:相当于一个容器࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值