Flask,从表单中的无序列表中获取所有列表项

时间:2017-02-09 23:55:24

标签: jquery python html flask

我正在制作一个添加食谱的页面。提交食谱时,用户必须填写含有成分的无序列表。

HTML部分看起来像这样

<head>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script type=text/javascript>
    $(function() {
      $('a#ingredient_input').bind('click', function() {
      $.getJSON('/_background', {
        ingredients: $('input[name="ingredients"]').val(),
      }, function(data) {
        console.log(data);
        var node = document.createElement('li');
        var textnode = document.createTextNode(data.ingredients);
        node.appendChild(textnode);
        document.getElementById("ingr").appendChild(node);
      });
        return false;
      });
    });
  </script>
</head>

<form action="/addrecipe/" method="POST">
     <h3>Ingredients</h3>
    <input type="text" name="ingredients">
    <a href="#" id=ingredient_input><button type="button">Add ingredient</button></a>
    <ul id="ingr" name="ingredients" value="{{request.form.ingredients}}"></ul>
   <input type="submit" Value="Submit new recipe">
</form>

在我的__init__.py文件中,我有一个函数_background,用于处理添加到uladdrecipe的成分,并读取请求表单。这看起来如下:

@app.route('/addrecipe/', methods=['POST', 'GET'])
def addrecipe():
    if request.method == 'POST':
        print request.form
        result = request.form
        flash("Thanks for your recipe :)")
        flash(str(result))
        return redirect(url_for('newrecipe'))

@app.route('/_background/')
def background():
    try:
        i = request.args.get('ingredients', 0, type=str)
        return jsonify(ingredients=i)
    except Error:
        return str(e)

我想知道,让我们说出用户输入的五种成分。显然,这个数字是可变的。我怎样才能做到这一点?就像现在一样,我只得到ul ...

中的最后一个元素

0 个答案:

没有答案