Python 程序停止工作:现在我得到的只是我不知道的服务器错误';我不明白
我一直在遵循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.htmlPython 程序停止工作:现在我得到的只是我不知道的服务器错误';我不明白,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
<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 %}
© 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 %}