【问题标题】:Is there a flask function called @make_bold?? I am very confused as I am not able to find the answer anywhere是否有一个名为@make_bold 的烧瓶函数?我很困惑,因为我无法在任何地方找到答案
【发布时间】:2022-01-12 04:33:41
【问题描述】:

2 天前,我遇到了一个关于 Python Flask 的非常不寻常的错误。当我遇到一个让我感到困惑的错误时,我只是在编写代码。我正在做一个 Python 课程,它表明如果我们在代码中添加一些装饰器,我们可以使我们的代码更容易阅读。当我添加与视频中显示的相同的装饰器时,我遇到了一个错误,上面写着

Name error: Name @make_bold is not defined 

这是代码


app = Flask(__name__)

@app.route('/')
def func():
    return 'Hey'

@app.route("/bye")
@make_bold
@make_emphasis
@make_underlined
def func1():
    return 'Bye'

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

【问题讨论】:

  • 它一定是某个教程或课程的一部分,您在其中编写了所有 3 个装饰器......没有类似的内置

标签: python flask decorator


【解决方案1】:

Flask 是一个网络服务器,这意味着它可以向浏览器提供网页或其他信息,但这并不意味着它旨在创建网页。从长远来看,让 Flask 返回一个正确的 HTML 文档会更好,但同时,尝试在实际文本中包含使文本变为粗体所需的 HTML 标签,因为我认为这就是装饰器(似乎不是内置的)正在幕后工作。

@app.route("/bye")
def func1():
    return '<b><i><u>Bye</u></i></b>'

另一种选择是自己创建装饰器。

def make_bold(func):
    def wrapper(*args, **kwargs):
        return '<b>' + func(*args, **kwargs) + '</b>'
    return wrapper

@app.route("/bye")
@make_bold
def func1():
    return 'Bye'

【讨论】:

  • 非常感谢米格尔!这帮助很大!
  • 如果我回答了您的问题,我会很感激您将其标记为这样,因为这将有助于将来遇到类似问题的人
猜你喜欢
  • 1970-01-01
  • 2018-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 2017-03-06
相关资源
最近更新 更多