Получение не найденной ошибки при маршрутизации Flask - PullRequest
0 голосов
/ 20 марта 2019

Я попробовал все, но маршрут просто не работает. Я новичок в колбе, и я запускаю его на месте. Кроме того, мой угловой js-код дает 404 при отправке данных во флягу, поскольку маршрут, по-видимому, не существует.

app.py

@app.route('/')
@app.route('/index')
def IndexPage():
    return render_template('index.html')

#these routes don't work although all of the others do which is very confusing
@app.route('/misc')
@app.route('/contact/mama')
def printHello():
    return render_template('index.html')


@app.route('/contact')
def ContactPage():
    return render_template('contact.html')


@app.route('/about')
def AboutPage():
    return render_template('about.html')


if __name__ == '__main__':
    app.run()

Вот мой угловой код и скрипт python, пытающийся обработать почтовый запрос

var formApp = angular.module('formController', []);
formApp.controller("formControl", function($scope,$http) {
    alert("mama");
    $scope.FormSubmit = function ()
    {
        alert("In the function");
        var data =
            {
            name : $scope.user.name,
            phone : $scope.user.phone,
            email : $scope.user.email,
            message : $scope.user.message
            };
        var result = $http.post('contact/userData', data, null);
        result.success(function(response)
        {
            const message = response.status;
            alert(message)
            alert("Thanks for contacting us");
        });
        result.error(function(data, status, headers, config)
        {
            console.log(result)
            alert("Error while submitting data");
        });
        $scope.user.name = '';
        $scope.user.phone = '';
        $scope.user.email = '';
        $scope.user.message = '';
    };
});

и вот скрипт python для обработки запроса

import sys приложение для импорта импорт JSON из колбы запрос на импорт

@app.route("/contact/userData", methods=['GET','POST'])
def SendMail():
    message = json.dump({'status': 'success'})
    return message

Ответы [ 3 ]

0 голосов
/ 20 марта 2019

Вы не определили contact / userData в качестве конечной точки, определите это в app.py, и вам следует идти дальше, или, по крайней мере, вы получите более полезную ошибку.

0 голосов
/ 20 марта 2019

Это происходит потому, что, вероятно, ваше приложение Flask работает в качестве другой конечной точки, чем ваше приложение Angular. Так, например, ваш браузер запросит ваше приложение на http://localhost:8080/, а угловое приложение запросит услугу на http://localhost:5000/, и это не разрешено по умолчанию. Вам нужно включить CORS в вашей колбе или как мое предпочтительное решение, чтобы создать прокси в вашей угловой среде:

  1. Создайте файл proxy.conf.json в корневой папке вашего проекта ng
{
    "/vat/api": {
        "target": "http://localhost:5000/",
        "secure": false
    }
}
  1. Запустите ваше приложение с помощью
ng serve --open --proxy-config proxy.conf.json
0 голосов
/ 20 марта 2019

json.dumps () вызывал проблему. Изменил его на метод jsonify, и код начал работать.

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