我正试图让一个表单在我的flask web应用程序(twitter克隆)中做一些事情,但每当我添加时:
action={{ url_for('tweet') }}
在我的表格上,它给了我一个
500内部服务器错误
并且在终端中显示
"GET/HTTP/1.1"500-
我在网上寻找解决方案,但找不到任何有帮助的东西。我只是让我的表单在屏幕上返回一个简单的字符串。当我尝试加载索引页面而不是使用表单时,我也会遇到错误。
你知道我做错了什么吗?我正在遵循一个在线教程,我确信我已经正确地遵循了说明。
以下是相关代码:
My html:
<!DOCTYPE html>
<html>
<head>
<title>Fake Twitter</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='styles/css.css') }}">
<link rel="shortcut icon" href="{{ url_for('static',filename='images/favicon.ico') }}" type="image/x-icon" />
</head>
<body>
<img id="logo" src="{{ url_for('static',filename='images/logo.png') }}">
<section>
<div id="leftDiv">
<!-- <button id="composeButton" type="button" onclick="tweetForm()">Compose Tweet</button> -->
<form id="tweetForm" name="tweetForm" action="{{ url_for('tweet') }}" method="POST">
<h1>Compose Tweet</h1>
<table>
<tr>
<td>
<label>Username</label>
</td>
<td>
<input type="text" id="usernameField" name="username">
</td>
</tr>
<tr>
<td>
<label>Tweet<br><i>(Max 140 chars)</i></label>
</td>
<td>
<textarea id="tweetContentField" name="tweetContent" size="140"></textarea>
</td>
</tr>
<tr><td colspan="2" align="center">
<button id="sendTweet">Send Tweet</button>
</td></tr>
</table>
</form>
</div>
<div id="rightDiv">
<div class="tweetDiv">
<p class="user">@DarachRonayne</p>
<p class="tweetContent">Neque porro quisquam est qui dolorem ipsum quia dolor amet, consectetur, adipisci velit. Neque poro quisquam est qui dolorem. Neque porrrro.</p>
<p class="timestamp">Timestamp Here</p>
<button class="deleteButton" type="button">Delete Tweet</button>
</div>
</div>
</section>
</body>
<script src="{{ url_for('static',filename='js/js.js') }}"></script>
</html>
我的Python文件:
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template("index.html")
@app.route('/tweet', methods=['POST'])
def tweet():
return 'TWEET TWEET!'
if __name__ == '__main__':
app.run()
app.run(debug=True, port=8080, host='0.0.0.0')
action={{ url_for('tweet') }}
可能会引发服务器错误,因为您没有将其作为url_for()
导入。使用action={{ flask.url_for('tweet') }}
或from flask import render_template, url_for
。
请参阅文档。
albert发表的评论