我尝试了一切,但路线似乎不起作用。我是flask的新手,正在本地运行。另外,我的角度js代码在将数据发布到Flask时给出了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脚本
导入系统 导入应用 导入json 从烧瓶导入请求中
@app.route("/contact/userData", methods=['GET','POST'])
def SendMail():
message = json.dump({'status': 'success'})
return message
答案 0 :(得分:0)
json.dumps()引起了问题。将其更改为jsonify方法,代码开始工作。
答案 1 :(得分:0)
您尚未将contact / userData定义为终结点,没有在app.py中定义它,您应该会做的很好,否则至少会得到一个更有用的错误。
答案 2 :(得分:0)
发生这种情况是因为Flask应用程序可能与Angular应用程序在不同的端点上运行。因此,例如,浏览器将在http://localhost:8080/处请求您的应用,而角度应用将在http://localhost:5000/处请求服务,并且默认情况下不允许这样做。 您需要在烧瓶中启用CORS或作为我的首选解决方案,以在角度环境中创建代理:
proxy.conf.json
{
"/vat/api": {
"target": "http://localhost:5000/",
"secure": false
}
}
ng serve --open --proxy-config proxy.conf.json