相关疑难解决方法(0)

表格发送错误,Flask

有两个形式<input type="submit">.但是当我发送它时,第二次提交会导致错误.

布局:

<form action="{{ url_for('index') }}" method="post">
    <input type="submit" name="add" value="Like">
    <input type="submit" name="remove" value="Dislike">
</form>
Run Code Online (Sandbox Code Playgroud)

main.py:

...
if request.method == 'POST':
    if request.form['add']:
        return redirect(url_for('index'))
    elif request.form['remove']:
        return redirect(url_for('index'))
...
Run Code Online (Sandbox Code Playgroud)

首先提交(添加)效果很好,但第二次(删除)...:

错误请求浏览器(或代理)发送了此服务器无法理解的请求.

我该如何解决这个错误?

UPD:

这很简单:request.form返回ImmutableMultiDict:

... 
if 'Like' in request.form.values():
     ...
elif 'Dislike' in request.form.values():
     ...
Run Code Online (Sandbox Code Playgroud)

python forms flask

56
推荐指数
1
解决办法
8万
查看次数

通过表格在Flask上发布数据给出400 Bad Request

我试图通过我的前端发布数据,烧瓶应用程序抛出了400个错误的请求.但是如果我使用Curl调用它也一样,它似乎工作正常.我不知道我在表格中缺少什么.

以下是我的表格代码

<script>
function sub() {
    console.log('sub function');
    $("#fquery").submit();
}
</script>
<form id="form1" action="/final" method="post">
 <input id='query' type="text">
  <button type="submit" onClick='sub()'>Submit &raquo;</button>
</form>
Run Code Online (Sandbox Code Playgroud)

在服务器端:

@app.route('/final',methods=['POST','GET'])
def message():
    if request.method == 'POST':
        app.logger.debug(" entered message function"+ request.form['query'])
        q = request.form['query']
    return render_template('final.html',query=q,result="Core_Table Output")
Run Code Online (Sandbox Code Playgroud)

服务器端对我来说似乎很好.因为我收到卷曲请求的回复

curl http://localhost:8000/final -d "query=select starct st blah blah" -X POST -v
*   Trying 127.0.0.1... connected
> POST /gc HTTP/1.1
> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: localhost:8000
> Accept: */*
> Content-Length: 41 …
Run Code Online (Sandbox Code Playgroud)

html javascript python http flask

10
推荐指数
1
解决办法
3万
查看次数

如何在烧瓶中使用 request.args.get() ?

如果 url 查询字符串拼写错误,如何抛出异常?

解释 :

这是获取特定用户的 url: http://127.0.0.1:5000/v1/t/user/?user_id=1。如果持续下去,http://127.0.0.1:5000/v1/t/user/它将给出用户列表。

问题:

如果user_id查询字符串中的拼写错误(例如错误)怎么办use_id=1,或者不是传递整数值,而是传递字符串值,user_id我希望在这种情况下我应该返回 404 页面。我不认为内部request.args.get()会抛出?如果我必须处理这种情况该怎么办?

我的代码的一部分:

page_index = request.args.get('index', 1, type=int)
max_item = request.args.get('max', 1, type=int)
userID = request.args.get('user_id', type=int)
Run Code Online (Sandbox Code Playgroud)

python flask python-3.x

3
推荐指数
1
解决办法
2万
查看次数

TutorialsPoint - Flask - SQLAlchemy无效

我完成了教程点上的所有内容(只是复制和粘贴),但当我尝试添加学生条目时,即"添加学生",它给出了

错误请求浏览器(或代理)发送了此服务器无法理解的请求.

请告知本教程是否有任何问题.

它在def new()中的这一行失败了,在app.py中:

 student = students(request.form['name'], request.form['city'], request.form['addr'], request.form['pin'])
Run Code Online (Sandbox Code Playgroud)

无论谁将其标记下来.请注意,这是一个充满拼写错误和错误缩进的教程.我只是一名学生.关闭它,我什么都不会学到.

参考:http://www.tutorialspoint.com/flask/flask_sqlalchemy.htm

from flask import Flask, request, flash, url_for, redirect, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.sqlite3'
app.config['SECRET_KEY'] = "random string"

db = SQLAlchemy(app)

class Students(db.Model):
    id = db.Column('student_id', db.Integer, primary_key = True)
    name = db.Column(db.String(100))
    city = db.Column(db.String(50))
    addr = db.Column(db.String(200)) 
    pin = db.Column(db.String(10))

    def __init__(self, name, city, addr,pin):
        self.name = name
        self.city = city
        self.addr = …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy flask

-2
推荐指数
1
解决办法
998
查看次数

标签 统计

flask ×4

python ×4

forms ×1

html ×1

http ×1

javascript ×1

python-3.x ×1

sqlalchemy ×1

sqlite ×1