【发布时间】:2017-06-23 18:44:52
【问题描述】:
我在烧瓶中有一条路由,用于通过 http 将大量变量传递到我的函数中。除了“biz”变量外,一切都很好。这是我的功能...
@app.route("/sendcheck/<name>/<address_object>/<amount>/<memo>/<biz>", methods=['GET', 'POST'])
def create_check(name, address_object, amount, memo, biz):
check = lob.Check.create(
description = 'Check for {}'.format(name),
to_address = address_object,
from_address = biz.address,
bank_account = biz.bank,
amount = amount,
memo = memo,
logo = open(biz_0.logo, 'rb'),
check_bottom = '<h1 style="padding-top:4in;">{{name}}, attached is your check', #add a custom bottom
data = {
'name': name
}
)
biz 变量访问具有各种属性的类。因此,如果变量的值为biz_1,那么输入biz.address 应该与biz_1.address 相同,但它不起作用。我越来越……
AttributeError: 'unicode' object has no attribute 'address'
我在这里做错了什么?
【问题讨论】:
-
No
biz是 Flask 传入的路径段,只是一个 Unicode 字符串。这样的字符串没有属性。在这方面biz与name、address_object和amount没有区别。 -
显然
biz不是一个类,而是一个 unicode 对象。打印biz -
您的意思是使用这些路径段值来检索特定类的实例吗?
-
仅基于发布的代码和错误,您将 unicode 对象传递给 biz,而不是您认为具有属性的对象。发布调用代码,有人可以进一步提供帮助。
-
@AlanLeuthard:这是一条 Flask 路线。传入的参数基于使用的实际 URL,与
<...>括号中的路由元素匹配。您可以为此添加类型解析,但这里没有,所以这些都是 unicode 字符串,保证。