Flask Form 500内部服务器错误

时间:2015-12-09 16:06:14

标签: python html flask

我正在尝试让表格在我的烧瓶网络应用程序(推特克隆)中做一些事情,但每当我添加:

action={{ url_for('tweet') }}

到我的表格,它给了我一个

  

500内部服务器错误

并在终端显示

  

“GET / HTTP / 1.1”500 -

我在线寻找解决方案,却找不到任何有用的方法。 我只是让我的表单在屏幕上返回一个简单的字符串。当我尝试加载索引页面时,我也收到错误,而不是使用表单。

这里有关于我做错了什么的想法?我正在关注在线教程,并确信我已正确遵循说明。

以下是相关代码:

我的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')

1 个答案:

答案 0 :(得分:0)

action={{ url_for('tweet') }}可能会引发服务器错误,因为您没有将其导入为url_for()。使用action={{ flask.url_for('tweet') }}from flask import render_template, url_for

请参阅docs

albert

发表的评论