首页 > 解决方案 > 更干净的 Python 建议

问题描述

好奇是否有更简洁的方法来设置这些表单值,而不是一一列出。venue_items字典不包含任何未在此处声明的额外 (key, value) 对,如果这有什么不同的话。

    form.name.data = venue_items["name"]
    form.city.data = venue_items["city"]
    form.state.data = venue_items["state"]
    form.address.data = venue_items["address"]
    form.phone.data = venue_items["phone"]
    form.image_link.data = venue_items["image_link"]
    form.facebook_link.data = venue_items["facebook_link"]
    form.genres.data = venue_items["genres"]
    form.website.data = venue_items["website"]
    form.seeking_talent.data = venue_items["seeking_talent"]
    form.seeking_description.data = venue_items["seeking_description"]

标签: python

解决方案


我的意思是,有一种方法可以动态地执行此操作,例如:

for key, value in venue_items.items():
    getattr(form, key).data = value

或者,如果您的 dict 包含不会使用的额外键值对,例如:

keys = ["name", "city", "state", "address", "phone", "image_link", "facebook_link",
        "genres", "website", "seeking_talent",  "seeking_description"]

for key in keys:
    getattr(form, key).data = venue_items[key]

推荐阅读