Запрос с использованием переменной из URL не выполняется - Flask-SQLAlchemy - PullRequest
0 голосов
/ 28 июня 2018

У меня есть 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 успешно отправляет правильный запрос, переменная имеет тип string, но при выполнении первого запроса ничего не возвращается. У меня есть аналогичная конечная точка в другом приложении, и она отлично работает .. почему это исключение? Чего не хватает? Я уверен, что запись, которую я запрашиваю, находится в базе данных, поэтому она должна вернуть ее.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Проблема в том, что перед остальной строкой было некоторое неожиданное пространство. Ошибка возникла из jquery и jinja, где jquery получал html-содержимое элемента и отправлял их как переменную. Синтаксис дзиндзя был что-то вроде: <p> {{ variable }}</p> Когда jquery извлекает html-содержимое, оно занимает пространство между открывающим тегом абзаца и фигурными скобками. Переданная переменная имела начальный пробел, который вызвал ошибку.

0 голосов
/ 28 июня 2018
@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()
...