0

我让 jquery 向 api 端点发送请求。下面的代码:

$.get("http://localhost:5000/api/update/"+ elm2, function(data){});

端点定义如下:

@app.route('/api/update/<id>', methods=['GET'])
def check_new_entries(id):
    result = Trades.query.filter_by(id=id).first_or_404()
    new_entries = Trades.query.filter(Trades.time_recorded > result.time_recorded).all()

被查询的表是:

class Trades(db.Model):
    id = db.Column(db.String,default=lambda: str(uuid4().hex), primary_key=True)
    amount = db.Column(db.Integer, unique=False)
    time_recorded = db.Column(db.DateTime, unique=False)

问题:Jquery 成功发送了正确的请求,变量是字符串类型,但是当第一个查询被执行时,它没有返回任何东西。我在另一个应用程序中有一个类似的端点,它工作正常。为什么这是一个例外?可能缺少什么?我确信我正在查询的记录在数据库中,所以它应该返回它。

4

2 回答 2

0

问题是在字符串的其余部分之前有一些意想不到的空间。该错误源于 jquery 和 jinja,其中 jquery 获取元素的 html 内容并将它们作为变量发送。jinja 语法类似于: <p> {{ variable }}</p> 当 jquery 获取 html 内容时,它会占用段落开头标记和开头花括号之间的空格。传输的变量有一个导致错误的前导空格。

于 2018-06-28T11:59:27.720 回答
0
@app.route('/api/update/<id>', methods=['GET',])
def check_new_entries(id):
    result = Trades.query.filter_by(id=id).first()
    if result:
        new_entries = Trades.query.filter(Trades.time_recorded >= result.time_recorded).all()
于 2018-06-28T11:30:15.043 回答