【问题标题】:Trouble accessing class attributes in Python在 Python 中访问类属性时遇到问题
【发布时间】: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 是 Fl​​ask 传入的路径段,只是一个 Unicode 字符串。这样的字符串没有属性。在这方面biznameaddress_objectamount 没有区别。
  • 显然 biz 不是一个类,而是一个 unicode 对象。打印biz
  • 您的意思是使用这些路径段值来检索特定类的实例吗?
  • 仅基于发布的代码和错误,您将 unicode 对象传递给 biz,而不是您认为具有属性的对象。发布调用代码,有人可以进一步提供帮助。
  • @AlanLeuthard:这是一条 Flask 路线。传入的参数基于使用的实际 URL,与 &lt;...&gt; 括号中的路由元素匹配。您可以为此添加类型解析,但这里没有,所以这些都是 unicode 字符串,保证。

标签: python flask lob


【解决方案1】:

这远非理想,但这就是我解决它的方法。我愿意接受建议。

@app.route("/sendcheck/<name>/<address_object>/<amount>/<memo>/<biz>", methods=['GET', 'POST'])
def create_check(name, address_object, amount, memo, biz):
    if biz == 'biz_0':
        biz = biz_0
    elif biz == 'biz_1':
        biz = biz_1
    elif biz == 'biz_2':
        biz = biz_2
    elif biz == 'biz_3':
        biz = biz_3
    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
        }
    )

【讨论】:

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