当前位置: 首页 > 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.yayakq.cn/news/14281/

相关文章:

  • 外贸网站建设怎么选wordpress服务器配置
  • 网站推广的英文content用钢铁侠做网站
  • 网站不备案行吗网站建设行业论坛
  • 贵州省建设监理协会网站是什么做网站花钱么
  • 潍坊建设厅官方网站免费网页制作代码
  • 网站推广的内涵成功备案的网站增加域名
  • 常州网站建设平台广州最好网站建设公司
  • 郑州营销型网站建设哪家好南宁免费网站建站模板
  • 怎么查网站建设时间佛山企业快速建站
  • 最好的淘宝客网站网站建设 培训
  • 网站视听内容建设wordpress微信qq登陆
  • 烟台网站建设力荐企汇互联见效付款wordpress标签转换
  • 一台云服务器可以做多个网站网站建设制作人员招聘要求
  • 南宁学网站建设wordpress创建子主题
  • 做网站 中介wordpress宝塔开启ssl
  • 肇庆cms建站系统定制型网站制作明细报价表
  • 海洋优质的网站建设flash里鼠标可以跟随到网站上就不能跟随了
  • 双语网站代码响应式企业网站cms
  • wordpress 扒站中华建设网官网
  • 专门做特卖的网站是什么意思删除windows wordpress
  • 樟树网站建设网站域名重要吗
  • 做网站的实训报告网站备案资质
  • c 网站开发需要学什么软件有哪些网站建设方案书 doc
  • 做家教在哪个网站找成都市广告制作公司
  • 表白制作网站WordPress都可以做什么
  • 个人制作的网站模板wordpress讨论
  • 网站代发外链南昌网站设计制作
  • 东营北京网站建设wordpress 国产
  • 太原网站建设方案开发网站运行团队建设
  • 史上最全设计网站加盟网站制作费用