【问题标题】:Values flask template not parsing值烧瓶模板不解析
【发布时间】:2017-06-27 16:20:26
【问题描述】:

所以,我创建了一个烧瓶模板,可以从中上传多个文件。每种文件类型都有自己的提交按钮,根据单击的按钮,我希望运行一段不同的 Python 代码。

我的 Flask 模板的前半部分如下所示:

<h3> Upload Portfolio Data</h3>
<form action="{{ url_for('admin') }}" method="post" enctype=multipart/form-data>
<fieldset>
    <label class="control-label">Select Portfolio Upload File</label>
    <input id="input-1" type="file" class="file" name="portfolios">
    <div class="form-group">
        <button class="btn btn-default" type="submit" value = "portfolios">Upload</button>
    </div>
    <h3>Upload Security Lists</h3>
    <label class="control-label">Select Security Upload File</label>
    <input id="input-1" type="file" class="file" name="securities">
    <div class="form-group">
        <button class="btn btn-default" type="submit" value = "securities">Upload</button>
    </div>
     <table class="table" style="width:100%">
    <tr> 
         <th>Priority </th>
         <th>Target </th>
     </tr>
    <tr>
    <h2>Transaction Priority</h2>
        <td>1st</td>
        <td>
            <select class="form-control" name="first" style="float:left; width:150px">
               <option value="asset_allocation">Asset Allocation</option>
               <option value="sector">Sector</option>
               <option value="region">Region</option>
               <option value="security_opinion">Security Neutral</option>
               <option value="security_nr">Security NR</option>
          </select>
        </td>
    </tr>
    <tr>
        <td>2nd</td>
        <td>
            <select class="form-control" name="second" style="float:left; width:150px">
               <option value="asset_allocation">Asset Allocation</option>
               <option value="sector" selected ="selected">Sector</option>
               <option value="region">Region</option>
               <option value="security_opinion">Security Neutral</option>
               <option value="security_nr">Security NR</option>
          </select>
        </td>
    </tr>

在 Python 中,我尝试读取按钮的值,如下所示:

if request.method == "POST":

    if 'portfolios' in request.form.values():
        # do something

    if 'securities' in request.form.values():
        # do something

但不知何故,按钮的值并没有传递给 request.form.values() 函数。如果我打印 request.form 那么它有来自我表单中其他地方的值,但没有按钮的值:

ImmutableMultiDict([('second', 'sector'), ('first', 'asset_allocation'), ('fifth', 'security_nr'), ('third', 'region'), ('fourth', 'security_opinion')])

知道是什么原因造成的吗?

【问题讨论】:

  • 通过使用dict方法values(),你的意思是输入肯定有一个包含“投资组合”或“证券”的值吗?我猜这些词在keys().
  • 你可以打印 request.form 来检查里面的内容吗?
  • @Leonard2:我将值附加到按钮上(参见烧瓶模板),所以我会假设它会出现?如果我更改为 request.form.keys() 问题仍然存在:( @lapinkoira:我在帖子中添加了打印信息

标签: python flask


【解决方案1】:

request.form 是一个类似字典的对象。 dict 的values() 方法为您提供了值。但是“投资组合”和“证券”是,而不是值。只需使用:

if 'portfolios' in request.form:

等等,因为in 会查看按键。

【讨论】:

  • 嗯,但它们似乎根本没有通过。问题似乎出在 Flask 模板而不是 Python 代码中?
【解决方案2】:

我想通了!有趣的是,这几天一直在看这个,然后决定在这里发布问题,然后我自己看到了......无论如何,我似乎没有通过按钮传递名称,导致值也没有被传递...... .

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 2018-03-25
    相关资源
    最近更新 更多