Как решить ошибку 404 из FLASK в коде AJAX? - PullRequest
0 голосов
/ 20 февраля 2019

поэтому ajax вызывает: http://127.0.0.1:5000/'+x"/"+y

, но я получаю ошибку: 127.0.0.1 - - [19 / Feb / 2019 15:38:40] "[33mGET / -1 / 0.2? _ = 1550608718380 HTTP / 1.1 [0m "404 -

Я перепробовал все, что мог, и даже интенсивно искал StackOverflow перед публикацией.

x и y предполагаютсябыть значения между -1 и 1. из журнала ошибок очевидно, что он читает числа.Так что я думаю, это как-то связано с Флягой.то, что я пытаюсь сделать, это сделать, чтобы flask получил эти значения x и y, но я не думаю, что он каким-то образом их получает.

Когда я выполнял тот же запрос Mongo в блокноте jupyter, у него не было проблем с получением этих данных.так что это определенно не имеет ничего общего с Mongo.

Я использовал этот почти тот же самый код javascript и метод фляги в другом проекте, и у него не было никаких проблем

Это мой код фляги: @app.route("/<int:mn>/<int:mx>") def polarity(mn,mx): pol=tweet.aggregate([{"$match":{"polarity":{"$gte":mn,"$lte":mx}}}]); return dumps(pol) Javascript:

    $.ajax({

        cache: false,
    url:'http://127.0.0.1:5000/'+x.val()+"/"+y.val(),
    type:'get',
     dataType:"json",
    success:function(data){
    console.log(data);
        $.each(data,function(i,data){
            results.push(data);
            $('.latest-tweet').hide()
        });
        console.log(results)

    // createCards.dom(results)
} 
});

1 Ответ

0 голосов
/ 20 февраля 2019

Ваше значение для y = 0.2 не является целым.Это приводит к тому, что он не находит конечную точку /<int>/<int>, поскольку ищет /<int>/<float>

Измените конечную точку на

@app.route("/<string:mn>/<string:mx>")
def polarity(mn,mx):
    try:
        mn = float(mn)
        mx = float(mx)
    except ValueError:
        return Response(status=400)
    pol=tweet.aggregate([{"$match":{"polarity":{"$gte":mn,"$lte":mx}}}]);
        return dumps(pol)

Это позволит вам иметь дело с отрицательными числами с плавающей точкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...