当前位置: 首页 > news >正文

免费新闻网站建设佛山快速排名

免费新闻网站建设,佛山快速排名,全球采购网站,政府门户网站的建设与管理目录7.内置装饰器(钩子函数)7.1 before_request7.2 after_request7.3 before_first_request7.4 error_handlers7.5 template_filter7.6 template_global复习装饰器基础及其应用,可参考文章:闭包和装饰器 7.内置装饰器&#xff08…

目录

  • 7.内置装饰器(钩子函数)
    • 7.1 before_request
    • 7.2 after_request
    • 7.3 before_first_request
    • 7.4 error_handlers
    • 7.5 template_filter
    • 7.6 template_global

复习装饰器基础及其应用,可参考文章:闭包和装饰器

7.内置装饰器(钩子函数)

7.1 before_request

before_request用于请求前验证

如果before_request里的其中一个函数有返回值,则直接跳到after_request的列表里从后往前验证。

# before_request 和 after_request
from flask import Flaskapp = Flask(__name__)@app.before_request
def xxx1():print('前1')@app.before_request
def xxx2():print('前2')@app.route('/x1', methods=['GET', 'POST'])
def X1():print('视图函数x1')return '视图函数x1'if __name__ == '__main__':app.run()

例子:使用before_request做登录验证

from flask import Flask, request, session, redirectapp = Flask(__name__)
app.secret_key = "sasfangndga"@app.before_request
def check_login():if request.path == '/login':return Noneuser = session.get('user_info')if not user:return redirect('/login')@app.route('/login', methods=['GET', 'POST'])
def login():return '视图函数x1'@app.route('/index', methods=['GET', 'POST'])
def X2():print('视图函数x2')return '视图函数x2'if __name__ == '__main__':app.run()

7.2 after_request

after_request用于请求后验证

after_request效果和django 的process_response是一样的,必须有返回值,没有则报错。

# before_request 和 after_request
from flask import Flaskapp = Flask(__name__)@app.before_request
def xxx1():print('前1')@app.before_request
def xxx2():print('前2')@app.after_request
def yyy1(response):print('后1')return response@app.after_request
def yyy2(response):print('后2')return response@app.route('/x1', methods=['GET', 'POST'])
def X1():print('视图函数x1')return '视图函数x1'@app.route('/x2', methods=['GET', 'POST'])
def X2():print('视图函数x2')return '视图函数x2'if __name__ == '__main__':app.run()# 执行顺序如下
# 前1
# 前2
# 视图函数x2
# 后2
# 后1

flask中间件装饰器执行顺序: 如果多个app.before_request和app.after_request, app.before_request是按照从上而下执行(文件的上下),app.after_request是自下而上执行。

7.3 before_first_request

第一次来请求操作的装饰器:

@app.before_first_request
def first(*args,**kwargs):pass
'''
只有第一次请求时候才执行的函数装饰器
'''

7.4 error_handlers

@app.error_handlers(404)
def error_404(arg):'''自定义错误页面,根据状态码定制'''return "404错误啦"

7.5 template_filter

app.template_filter(‘过滤器名字’)。

flask 中用@app.template_filter(‘name’)来自定义名字为name的过滤器,name可以不指定,当不指定的时候使用函数的名称。

@app.template_filter()
def db(a1,a2,a3):return a1+a2+a3
'''
效果和django的Filter相似,前端渲染的时候需要注意写法
{{ 1|db(2,3)}} 1是第一个参数,后面是2,3参数。
'''

7.6 template_global

声明全局可用的模板函数,见模板引擎-变量里的示例

http://www.yidumall.com/news/16267.html

相关文章:

  • 长沙好的网站建设公司哪家好河北百度推广seo
  • 武汉光谷科技职业技术学校怎么样seo百度快照优化公司
  • 公司做网站百度可以搜到吗广州今日头条新闻
  • 高唐建筑公司网站seo公司seo教程
  • 做网站怎么赚钱吗个人如何做百度推广
  • wordpress去视频广告插件seo外链工具有用吗
  • 上海红酒网站建设移动排名提升软件
  • 做网站有哪些公司好天津百度网站快速排名
  • 做网站建设的平台网络营销首先要
  • 电商网站建设思路单页面网站如何优化
  • 外贸b2c商城网站怎么去做网络推广
  • 电子商务与网络营销网站优化排名
  • 怎么免费做网站推广平台怎么推广
  • 交互式网站是什么百度一下百度搜索官网
  • 做的网站 只显示代码百度经验首页官网
  • asp保险网站源码网站seo优化排名
  • 建设通网站怎么样网站流量统计分析工具
  • 阿里与电信签订合作协议潍坊seo关键词排名
  • 做移动网站网上怎么找客户资源
  • 实验报告设计方案深圳百度seo培训
  • 重庆最有效的网站推广优化排名
  • 接做网站单子的网站2023年时政热点事件
  • 网站建设成功案例怎么写网络推广公司服务内容
  • 数字媒体艺术网站建设优化百度百科
  • java做网站好吗商品热搜词排行榜
  • 如何加强高校网站建设腾讯广告代理
  • 中国建设招投标网站百度seo关键词优化市场
  • 北京网站建设服务深圳网站营销seo费用
  • 做网站的内容新闻软文推广案例
  • 成都双流网站建设湖南百度推广代理商