2017-04-24 56 views
1
@app.route('/profile<int:id>',methods=['POST','GET']) 
def profile(id): 
     id13=session['id'] 
     id_profile=id 
     search=None 
     row=None 
     if id13 != id_profile: 
      return redirect(url_for('logout')) 
     if id13 == "" : 
      return redirect(url_for('logout')) 

     if request.method=="POST": 
      search2=request.form['search']   
      sql="SELECT * FROM muzeu WHERE name LIKE '%"+search2+"%' " 
      con.execute(sql) 
      search=con.fetchall() 
     if request.method=="POST": 
      insert1=request.form["insert1"] 
      insert2=request.form["insert2"] 
      sql2="INSERT INTO comments VALUES('','"+insert1+"','"+insert2+"')" 
      con.execute(sql2) 

     sql3="SELECT * FROM comments " 
     con.execute(sql3) 
     row=con.fetchall() 
     return render_template("profile.html",search=search,row=row)   


and my html page forms 

<form method="POST" action=""> 
    <div class="input-group"> 
    <input type="text" class="form-control" name="search" placeholder="Search"> 
    <div class="input-group-btn"> 
     <button class="btn btn-default" type="submit" name="submit1"> 
     <i class="glyphicon glyphicon-search"></i> 
     </button> 
    </div> 
    </div> 
</form> 


<form method="POST"> 
<div class="input-group"> 
    <span class="input-group-addon">Nume</span> 
    <input id="msg" type="text" class="form-control" name="insert1" placeholder="Additional Info"> 
    </div> 
    <div class="input-group"> 
    <span class="input-group-addon">Descriere</span> 
    <input id="msg" type="text" class="form-control" name="insert2" placeholder="Additional Info"> 
    </div> 
<input type="submit" name="submit2" class="btn btn-primary btn-md"> 
</form> 

我试图学习烧瓶,我无法得到关于这个问题的答案。
我尝试使用搜索,插入和展示插入来制作个人资料页面。
我怎样才能从一个单一的页面,在一个烧瓶功能获得很多html格式

submition后,我收到HTTP错误400错误的请求
“浏览器(或代理)发送的请求,该服务器无法理解。”
任何帮助?

回答

1

浏览器只能提交一个表单。您正在尝试处理来自两者的数据,但未提交的数据在request.form中不存在,并且会引发400错误。

您需要能够区分提交的表单。向提交按钮添加一个名称和值,并检查返回哪个值以了解要执行的处理。通过添加带有名称的按钮,您正处于正确的轨道上,但是您对它们并不一致,并且没有在Flask中检查它们的值。

<!-- in the search form --> 
<button type=submit name=action value=search> 

<!-- in the second form --> 
<button type=submit name=action value=comment> 
if request.method == 'POST': 
    if request.form['action'] == 'search': 
     # do search action 
    elif request.form['action'] == 'comment': 
     # do comment action 

在这种情况下,它更有意义有处理搜索和评论不同的看法。创建两个单独的视图,并将这些表单指向正确的URL。

<form method=post action="{{ url_for('search') }}"> 

<form method=post action="{{ url_for('comment') }}"> 
相关问题