如果表单未验证,我正在使用此代码将数据分配给某些变量。这是我将在我的脚本中使用很多的一些逻辑。我想创建一个函数,以便该语句的else
部分存储在一个函数中,这样我就可以调用它而不是每次都粘贴这些行。
if form.validate_on_submit():
do something
else:
brand_title=form.brand_title.data or ''
carrier_format=form.carrier_format.data or ''
recording_artist=form.recording_artist.data or ''
producer=form.producer.data or ''
session=form.session.data or ''
tx_date=form.tx_date.data or ''
network=form.network.data or ''
programme_number=form.programme_number.data or ''
start_time_1=form.start_time_1.data or ''
我创建了一个类似的函数:
def variables():
brand_title=form.brand_title.data or ''
carrier_format=form.carrier_format.data or ''
recording_artist=form.recording_artist.data or ''
producer=form.producer.data or ''
session=form.session.data or ''
tx_date=form.tx_date.data or ''
network=form.network.data or ''
programme_number=form.programme_number.data or ''
start_time_1=form.start_time_1.data or ''
但是如何返回变量以便调用函数镜像输出每一行(如代码的第一部分中的else部分)。 我已经读过,只需返回每个变量:
return (brand_title. carrier_format, recording_artist, producer, session, tx_date, network, programme_number, start_time_1)
会创建一个元组,这似乎不是我需要的正确选项。
答案 0 :(得分:3)
我可能会建议您对功能进行一些小改动:
def variables():
var_dict = {}
var_dict['brand_title'] = form.brand_title.data or ''
var_dict['carrier_format'] = form.carrier_format.data or ''
var_dict['recording_artist'] = form.recording_artist.data or ''
var_dict['producer'] = form.producer.data or ''
var_dict['session'] = form.session.data or ''
var_dict['tx_date'] = form.tx_date.data or ''
var_dict['network'] = form.network.data or ''
var_dict['programme_number'] = form.programme_number.data or ''
var_dict['start_time_1'] = form.start_time_1.data or ''
return var_dict
使用字典存储数据更加清晰,尤其是当您有这么多相关变量时。
If this is a WTForm
,您可以只使用var_dict = form.data.copy()
访问已包含在dict中的数据,然后根据需要使用var_dict.get(<var>, '')
访问您的字段。
答案 1 :(得分:0)
字典会更好。此外,您可以使用所需属性的名称创建列表或其他容器,然后将逻辑推广到循环中:
def get_values(form):
names = ['brand_title', 'carrier_format', 'recording_artist'] # add others
return {name: getattr(form, name).data or '' for name in names}