为什么我的烧瓶代码出现错误的请求错误?

时间:2018-07-09 03:53:45

标签: python sql flask python-requests

我有这样的代码。这给了我400错误的请求错误。我发现页面中只有一种表单是提交表单的。

@auth.route('/admin/project/add',methods = ['POST', 'GET']) 
def addproject():
    if request.method == 'POST':
        projectname = request.form['projectname']
        c, conn = connection()
        query = "SELECT id from projects WHERE UPPER(project)='{}'".format(projectname)
        c.execute(query)
        value = c.fetchall
        if value>0:
            return render_template('addproject.html')  
        else:
            flash("Project already exists. Please goto projects page and confirm. If it is and error, please contact devloper.")
            return redirect(url_for('addproject'))  
    else:        
        return render_template('addproject.html')  

我还在下面的表单中添加我的HTML代码。我尝试了很多,却无法弄清楚为什么我一直遇到这个错误。我还对views.py进行了一些小的更改,但结果仍然相同。

 <form action="/admin/project/add" id="myForm" method="POST" name="add">
                                    <div class="form-body">
                                        <div class="row p-t-20">
                                            <div class="col-md-6">
                                                <div class="form-group">
                                                    <label class="control-label">Project Name</label>
                                                    <input type="text" id="projectname" class="form-control" placeholder="Please enter project name" required >
                                                    </div>
                                            </div>
                                            <!--/span-->
                                            <div class="col-md-6">
                                                <div class="form-group has-danger">
                                                    <label class="control-label">Project Location</label>
                                                    <input type="text" id="projectlocation" class="form-control form-control-danger" placeholder="Please enter project location" required >
                                                    </div>
                                            </div>
                                            <!--/span-->
                                        </div>
                                        <!--/row-->
                                        <div class="row">
                                            <!--/span-->
                                            <div class="col-md-6">
                                                <div class="form-group">
                                                    <label class="control-label">Starting Date</label>
                                                    <input type="date" class="form-control" placeholder="dd/mm/yyyy" required >
                                                </div>
                                            </div>
                                        <div class="col-md-6">
                                                <div class="form-group">
                                                    <label class="control-label">End Date</label>
                                                    <input type="date" class="form-control" placeholder="dd/mm/yyyy" required >
                                                </div>
                                            </div>

                                            </div>
                                            <div class="row">
                                                <div class="col-md-6">
                                            <div class="form-group has-danger">
                                                    <label class="control-label">Leader</label>
                                                    <input type="text" id="lead" class="form-control form-control-danger" placeholder="Please enter the leader for the project" required >
                                                    </div>
                                                </div>

                                                <div class="col-md-6">
                                            <div class="form-group has-danger">
                                                    <label class="control-label">Current Status</label>
                                                    <select class="form-control" required>
                                                        <option value="">--Select--</option>
                                                        <option value="T">T</option>
                                                        <option value="D">D</option>
                                                        <option value="S">S</option>
                                                    </select>
                                                    </div>
                                                </div>
                                            </div>

                                            <!--/span-->

                                            <!--/span-->
                                        </div>
                                        <!--/row-->
                                        <h5 class="box-title m-t-40">Project Description (optional)</h5>
                                        <hr>
                                        <div class="col-md-6">
                                            <div class="form-group has-danger">

                                                    <TEXTAREA rows="8" cols="138"></TEXTAREA>
                                                    </div>
                                                </div>
                                            <!--/span-->
                                        </div>
                                    </div><div class="col-md-6">
                                    <div class="form-actions">
                                        <button type="submit" class="btn btn-success" name="add"> <i class="fa fa-plus" value="Add"></i> Add</button>
                                        <button type="button" class="btn btn-inverse" onclick="viewproject();" name="cancel" value="Cancel">Cancel</button>

                                        {% with messages = get_flashed_messages() %}
         {% if messages %}
            <ul>
               {% for message in messages %}
               <li<{{ message }}</li>
               {% endfor %}
            </ul>
         {% endif %}
      {% endwith %}

                                    </div></div>
                                </form>

1 个答案:

答案 0 :(得分:1)

您问题的答案在addproject.html文件中以及发送参数的方式中。

要解决此问题,请检查参数名称(“项目名称”)中是否存在错误。查看addproject.html文件中的名称是否相同。

另一个常见问题是“内容类型”设置错误。

用表单代码编辑问题后,我看到您正在使用输入ID代替表单中的输入名称。

正确的方法是:

<input type="text" name="projectname" ... >

我希望这会有所帮助!