将一长串变量传递给render_template flask

时间:2018-01-19 15:41:23

标签: python flask

我正在写一个基于网络的文本RPG作为练习和学习烧瓶的方法。这导致我有render_template()函数列出大量变量。我经常发现,当代码看起来非常草率时,可能有更好的方法。 所有变量都在上面的函数中定义,但是当给予render_template时需要再次定义。有更好的方法吗?

    return render_template('rpg_play.html', game_name=pname, pname=pname, ability_1=ability_1, ability_2=ability_2, ability_3=ability_3, ability_4=ability_4, ammo_1=ammo_1, ammo_2=ammo_2, ammo_3=ammo_3, ammo_4=ammo_4, heal_pot=heal_pot, fire_pot=fire_pot, current_hp=current_hp, max_hp=max_hp, gold=gold, debt=debt, weapon=weapon, pstatus=pstatus, role=role, level=level, experience=experience, text=text, choice_type=choice_type, choice1=choice1, choice2=choice2, choice3=choice3, choice1_text=choice1_text, choice2_text=choice2_text, choice3_text=choice3_text, choice1_destination=choice1_destination, choice2_destination=choice2_destination, choice3_destination=choice3_destination)

1 个答案:

答案 0 :(得分:0)

烨。 Star表达式允许您将dict解压缩为命名参数:

def print_args(arg1, arg2, arg3):
    print(arg1, arg2, arg3)

d = {'arg1': 'a', 'arg2': 4, 'arg3': 'foo'}
print_args(**d)  # a 4 foo

所以你有一个dict,其中参数名称为键,并将其传递给**。阅读有关已加星标的表达式here的更多信息。