首页 > 其他分享 >Flask使用装饰器注意点

Flask使用装饰器注意点

时间:2024-02-28 16:13:07浏览次数:29  
标签:index return Flask def 注意 装饰 路由 inner

一 装饰器,需要放在路由装饰器下面

'''
在执行视图函数之前,做判断--》
路由的装饰器是控制路由匹配的--》
需要先执行,所以登录认证装饰器,需要放在下面
'''

二 需要直接指定路由别名

原因

'''
直接添加会报错————每个路由,都会有个别名,如果不写,默认以函数名作为别名

如果视图函数加了装饰器—————函数名就变成了 inner
而所有视图函数都叫inner,导致路由别名冲突了
'''

书写方式

@app.route('/',endpoint='index')
@auth
def index():
    return render_template('index.html', users=USERS)

登录装饰器案例

def auth(func):
    def inner(*args, **kwargs):
        if session.get('name'):
            # 在执行真正被装饰的函数之前,就要认证完
            res = func(*args, **kwargs)
            return res
        else:
            # 重定向到 登录页面
            return redirect('/login')

    return inner

@app.route('/',endpoint='index')
@auth
def index():
    return render_template('index.html', users=USERS)

标签:index,return,Flask,def,注意,装饰,路由,inner
From: https://www.cnblogs.com/wellplayed/p/18040739

相关文章

  • Flask新手四件套、session、转换器、取数据与模板语法
    新手四件套(返回格式)#导入fromflaskimportFlask,request,render_template,redirect,session#返回字符串return'字符串'#返回模板returnrender_template('模板名字')#传参returnrender_template('模板名字',key=value)#返回重定向returnredirect('/......
  • flask_02
    #1flask介绍 web框架---》小而精--》第三方插件--》完成更丰富的功能--》自由选择第三方插件#2wsgi协议:werkzeug:工具包uwsgi,wsgiref djagno,flask要遵循wsgi协议#3click定制命令 -定制命令--》把excel中得数据---》导入到mysql的某个表中......
  • 装饰器模式
    简介装饰器模式(DecoratorPattern)是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。该模式通过创建一个包装对象,也就是装饰器,来包裹原始对象,并在包裹的过程中添加新的行为或责任。结构Component(组件):定义了一个对象接口,可以给这些对象动态地添加职责......
  • Flask项目运行方式
    方式一(pycharm配置)首先新建一个flask-server目标文件选择需要运行的文件地址即可方式二:命令运行(推荐这种)flask--app文件名字.pyrun#或者python3-mflask--app文件名字.pyrun方式三:右键运行#必要代码if__name__=='__main__':app.run()方式四:命......
  • Flask_01
    #1下载中间件和爬虫中间件 -爬虫中间件---》控制输入输出---》一般不用#2下载中间件 -process_request:request对象,请求头,请求地址。。-process_response:response#3修改请求头,加入cookie,加入referer,加入请求头,加代理:request.meta['proxy']#4集成selenium---》性能低 ......
  • 面向对象编程的绑定方法、掩藏属性、装饰器
    一、绑定方法1、绑定给类的方法(@classmethod)12345678910111213141516171819class Oracle():    def __init__(self,ip,port):        self.ip = ip        self.port = port     @classmethod  #该方法......
  • Python flask
    {{变量}}_init_.py这个文件的执行时间package,moduledebug模式、host、portdebug模式:热更新可以在浏览器上面显示错误信息host让别人可以访问自己的电脑url与试图映射urlRESTful风格传参@app.route('/user/<user_id>')#可以指定参数的类......
  • APP应用内测分发时需要注意哪些
    作为开发人员,我们都知道,一个APP的成功与否,不仅取决于其功能和用户体验,更与其分发方式息息相关。尤其在当前市场竞争激烈的环境下,如何让你的APP脱颖而出,快速触达目标用户,是每一个开发者都面临的挑战。而作为行业内知名的APP分发平台,虾分发https://xiafenfa.com/始终站在分发技术的......
  • 安卓开发一个功能并将数据存储到Room中的流程以及注意事项
    开发流程与注意事项添加Room依赖:确保在build.gradle文件中添加了Room的依赖项。注意使用kapt插件而不是annotationProcessor来处理注解以及这二者之间的兼容性关系。定义实体(Entity):创建一个或多个实体类,用@Entity注解标记,表示数据库中的表。创建数据访问对象(DAO):定义一个接口,使......
  • 设计模式结构型之装饰器模式
    实验介绍本实验主要为大家介绍设计模式中的装饰器模式。从装饰器的概念引入,详细的介绍了装饰器和装饰器的应用,帮助大家对其有一个深层的理解。随后提供了两个在实际开发过程中可能会遇到的真实场景,帮助大家建立装饰器模式在前端应用的直观印象。最后提供了使用装饰器时候需要注意......