将 python class 对象传递给瓶子模板
Passing python class object to bottle template
我的 class 看起来像这样:
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)
当我们没有很多属性要处理时,第一种方法很好,但是我的 class 目前有大约 10 个属性,将这么多参数传递给模板函数看起来不太好。现在我想将这个 class 的对象传递给 bottle 模板并在那里使用它。我该怎么做?
# What I want to do
return template('index.html', member=member)
就这样吧。它应该工作正常。在您的模板中,您只需引用 member.name
、member.id_
等
如果你有 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))
但也许将对象直接注入到模板中更有趣。
我的 class 看起来像这样:
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)
当我们没有很多属性要处理时,第一种方法很好,但是我的 class 目前有大约 10 个属性,将这么多参数传递给模板函数看起来不太好。现在我想将这个 class 的对象传递给 bottle 模板并在那里使用它。我该怎么做?
# What I want to do
return template('index.html', member=member)
就这样吧。它应该工作正常。在您的模板中,您只需引用 member.name
、member.id_
等
如果你有 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))
但也许将对象直接注入到模板中更有趣。