Python 程序停止工作:现在我得到的只是我不知道的服务器错误';我不明白

Python 程序停止工作:现在我得到的只是我不知道的服务器错误';我不明白,python,flask,Python,Flask,我一直在遵循python和flask的标准介绍,我是flask的新手,但有几个月的时间编写python 我得到的错误是: 文件“C:/Users/danny/PycharmProjects/learning\u flask/venv/hello.py”, 第26行,登录 会话['username']=request.form.get['username']TypeError:'method'对象不可订阅 127.0.0.1---[2019年5月11日16:45:43]“发布/登录HTTP/1.1

我一直在遵循python和flask的标准介绍,我是flask的新手,但有几个月的时间编写python

我得到的错误是:

文件“C:/Users/danny/PycharmProjects/learning\u flask/venv/hello.py”, 第26行,登录 会话['username']=request.form.get['username']TypeError:'method'对象不可订阅 127.0.0.1---[2019年5月11日16:45:43]“发布/登录HTTP/1.1”500-

我让它工作了,我想我对模板做了一些修改,然后它就停止工作了。我已经查看了stacktrace和其他来源的错误,它似乎在说登录@app.route中有问题(但每次代码和模板工作的课程都没有帮助!如果网站向您显示了一些错误,如果有一个网站做得很好-会喜欢url)

应该加载登录页面,但找不到服务器,如果成功,请允许我访问欢迎页面,我认为下面的模板可以

Base.html

<head>
    {% block head %}
    <title>{% block title %}{% endblock %}</title>
    {% endblock %}
</head>

<body>
<h1>Lets Scamperdoodle</h1>

{% with messages = get_flashed_messages() %}

{% if messages %}
    <ul class="flashes">
        {% for message in messages %}
        <li>{{ message }}</li>
        {% endfor %}
    </ul>
{% endif %}

{% endwith %}

<div id="content">
    {% block content %}{% endblock %}
</div>
</body>

<footer>
    {% block footer %}
    &copy; Copyright 2019 <a href="http://scamperdoodle.co.uk"> Scamperdoodle</a>
    {% endblock %}
</footer>

{%block head%}
{%block title%}{%endblock%}
{%endblock%}
让我们快跑吧
{%with messages=get_flashed_messages()%}
{%if消息%}
    {消息%中的消息为%s}
  • {{message}}
  • {%endfor%}
{%endif%} {%endwith%} {%block content%}{%endblock%} {%block footer%} &抄袭;版权2019 {%endblock%}
login.html

{% extends "base.html" %}

{% block title %} Login page {% endblock %}

{% block content %}

<form action="{{url_for('login')}}" method="POST">

    {% if error %}
    <p style="color:red"> {{ error }} </p>
    {% endif %}

    <p>
        Username: <input type="text" name="username" />
    </p>

    <p>
        Password: <input type="password" name="password" />
    </p>

    <button type="Submit">Login</button>
</form>

{% endblock %}
{%extends“base.html”%}
{%block title%}登录页面{%endblock%}
{%block content%}
{%if错误%}

{{error}

{%endif%} 用户名:

密码:

登录 {%endblock%}
该错误可读性强,非常有用:

TypeError:“方法”对象不可下标

“不可订阅”表示您正在对不支持它的对象调用
[关键字]
。该错误甚至会告诉您该对象是一个
“方法”
,即
。get
是您在订阅之前调用的方法

重复评论(应作为答案发布):


request.form.get['username']
应该是
request.form['username']
request.form.get('username')

如果username==password没有意义,则
login()
中的缩进不正确。你为什么会想到这种情况?天哪,那太快了!!!非常感谢你!!我将提出一些建议。我想我可以解释roganhosh的评论我的错我在课程中保留了旧代码,但肯定错过了这一行哦!下一次的教训。我已经做了建议的更改,但仍然得到了问题SnakeCharmerb修复了错误,我指出了另一个错误。现在还不清楚你的新问题是什么,但是追踪新的错误并不好
{% extends "base.html" %}

{% block title %} Login page {% endblock %}

{% block content %}

<form action="{{url_for('login')}}" method="POST">

    {% if error %}
    <p style="color:red"> {{ error }} </p>
    {% endif %}

    <p>
        Username: <input type="text" name="username" />
    </p>

    <p>
        Password: <input type="password" name="password" />
    </p>

    <button type="Submit">Login</button>
</form>

{% endblock %}