【问题标题】:Assigning flash categories to iterated variablesFlask [Python] 将 flash 类别分配给迭代变量
【发布时间】:2022-08-10 00:00:57
【问题描述】:

我正在尝试将 Flash 类别分配给将在表单中生成的可迭代变量。

我的 HTML:

   <select name=\"values\" size=\"10\" multiple>
       {% with cols = get_flashed_messages
                       (category_filter=\"columns\"),
                       vals = get_flashed_messages
                       (category_filter=\"{{val_by_col}}\")%}
                   {% for col in cols %}
                       <optgroup label = {{ col }}>
                           {% for val in vals %}
                               <option>
                                   {{ val }}
                               </option>
                           {% endfor %}
                       </optgroup>
                   {% endfor %}
       {% endwith %}
       <input type=submit value=submit>
   </select>
</form>
**Yields HTML Select Form:**
 COLUMN 1
   ALL FLASH VALUES
 COLUMN 2
   ALL FLASH VALUES

但是,我想要完成的是:

**IDEAL HTML Select Form:**
 COLUMN 1
   COLUMN 1 FLASH VALUES
 COLUMN 2
   COLUMN 2 FLASH VALUES

我试图通过我的 Python 中的增量、可迭代变量来实现这一点:

val_by_col = 0
  for col in col_list:
  val_by_col = int(val_by_col ) + 1
  flash(col, \'columns\')
    for val in col:
      flash(val, category=val_by_col )

这样,我希望通过增加val_by_col 我可以像你迭代一样使用闪光灯 字典中的键、值对。使用 str()、f\'\"\"\' 和 \"\"{{}}\"\" 的组合没有产生正确的结果。

也许我可以将这些值附加到嵌套字典中,并以闪烁的形式遍历这些值以生成表单?谢谢!!

    标签: python variables flask categories flash-message


    【解决方案1】:

    我不知道如何用我最初的愿景填充选择表单,所以我想出了一个折衷方案。

    而不是尝试在选择表单中分隔列/值:

    <optgroup label=<column 1>>  
    <options> all column 1 values
    </options></optgroup> 
    <optgroup label=<column 2>>  
    <options> all column 2 values 
    </options></optgroup>
    

    相反,我在我的 for 循环中包含该列并闪烁 与价值一起:

    for col in enu_cols:
        flash(df.columns[int(col)], "message")
        for val in range(len(df[df.columns[int(col)]].unique())):
            message = f'[{col}] {df.columns[int(col)]}' \
                      f' - <{val}> {df[df.columns[int(col)]].unique()[val]}'
            flash(message, "val")
    

    因此,它现在将显示在选择表单中:

    <option> [column 1] value 1 </option>
    <option> [column 1] value 2 </option>
    <option> [column 2] value 1 </option>
    <option> [column 2] value 2 </option>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2014-05-31
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多