【问题标题】:Passing python class object to bottle template将python类对象传递给瓶子模板
【发布时间】:2021-09-12 12:40:06
【问题描述】:

我的班级是这样的:

class Person:
   def __init__(name=None, id_=None):
      self.name = name
      self.id_ = id_

# I'm currently doing this. member object is of Person type.
return template('index.html', name=member.name, id_=member.id_)

# What I want to do
return template('index.html', member=member)

当我们没有太多要处理的属性时,第一种方法很好,但是我的类目前有大约 10 个属性,并且将这么多参数传递给模板函数看起来不太好。现在我想将这个类的一个对象传递给瓶子模板并在那里使用它。我该怎么做?

【问题讨论】:

  • 请向我们展示您已经尝试过的内容。

标签: python html bottle


【解决方案1】:
# What I want to do
return template('index.html', member=member)

就这样做吧。它应该可以正常工作。在您的模板中,您只需引用 member.namemember.id_ 等。

【讨论】:

  • 谢谢 ron,我试过直接传递对象,效果很好。感谢您的帮助:)
  • 谢谢Sharan,很高兴听到这个消息。如果你能正式“接受”我的回答,那就太好了。
【解决方案2】:

如果你有 python 3.7+

from dataclasses import dataclass, asdict

@dataclass
class Person:
    name: str
    id_: str

member = Person('toto', '1')
return template('index.html', **asdict(member))

但将对象直接注入模板可能更有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多