[英]Flask (on apache mod_wsgi) returns BuildError
我的网络服务器上的Flask有问题(使用mod_wsgi的Apache):
[Sat Nov 30 20:19:45 2013] [error] ERROR:app:Exception on / [GET]
[Sat Nov 30 20:19:45 2013] [error] Traceback (most recent call last):
.....
[Sat Nov 30 20:19:45 2013] [error] File "/usr/local/lib/python2.7/dist-packages/werkzeug/routing.py", line 1620, in build
[Sat Nov 30 20:19:45 2013] [error] raise BuildError(endpoint, values, method)
[Sat Nov 30 20:19:45 2013] [error] BuildError: ('tool', {}, None)
在使用内置开发服务器测试应用程序时,一切正常。 目的是,您可以在/ tool的表单中输入数据,提交,重新加载站点并显示图像。 问题是,flask / werkzeug没有建立到/ tool的链接。 我的routes.py:
from flask import Flask, render_template, request, send_file, make_response, url_for
from forms import SynopForm
from flask.ext.seasurf import SeaSurf
@app.route('/')
def home():
return render_template('home.html')
@app.route('/about')
def about():
return render_template('about.html')
@app.route('/tool', methods=['GET', 'POST'])
def tool():
form = SynopForm(request.form)
if request.method == 'POST':
synoptxt = str(form.name.data)
return render_template('tool.html', form=form, success=True)
elif request.method == 'GET':
return render_template('tool.html', form=form)
....
我的layout.html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}">
</head>
<body>
<header>
<div class="container">
<img class="logo" height="70" src="{{ url_for('static', filename='img/entwurf_logo_w.png') }}" alt="logo">
<nav>
<ul class="menu">
<li><a href="{{ url_for('home') }}">Home</a></li>
<li><a href="{{ url_for('tool') }}">Tool</a></li>
<li><a href="{{ url_for('about') }}">About</a></li>
</ul>
</nav>
</div>
</header>
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
我不知道为什么它可以在我的本地PC上运行,但不能在服务器上运行。 如果有人有解决方案,那就太好了。
最好的问候,马丁
正如评论中发现的那样,问题在于Apache仍在内存中使用旧路由保留了该应用程序的旧版本。 此内存版本将尝试呈现具有新路线的新模板。 重新启动Apache服务器会使用新路由将新版本的Flask应用程序加载到内存中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.