我有一个使用NGINX作为网络服务器的Gunicorn服务的Flask应用程序。我只有两个有POST请求,登录和提交帖子的端点。登录工作完美无缺,但每当我尝试使用提交帖子端点进行POST时,我收到404.我的代码在没有NGINX或Gunicorn的localhost上运行,并且为了检测请求是POST vs GET我正在使用WTForms {{1 }} 方法。 NGINX错误和访问日志不会显示任何异常情况。
编辑:以下是包含帖子请求的端点的代码
新帖子:
validate_on_submit
登录:
@app.route('/newpost', methods=['GET', 'POST'])
@login_required
def new_post():
form = BlogForm()
if form.validate_on_submit():
#Omitted code for getting form data and creating form object
try:
#Omitted code for database actions
return redirect(url_for('index', _external=True))
except IntegrityError:
flash("Error inserting into database")
return('', 203)
else:
#Omitted some code for template rendering
return render_template('new_post.html')
答案 0 :(得分:0)
问题最终出现在NGINX上,我通过将/ var / lib / nginx的所有权从nginx用户更改为运行Flask应用程序的用户来修复它。在此之前,AWS并没有让我从new_post中的表单上传文件。