Flask Form 500内部服务器错误



我正试图让一个表单在我的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发表的评论

最新更新