【发布时间】:2021-10-31 18:25:24
【问题描述】:
我为数据库创建了一个程序,但出现此错误
TypeError: 'NoneType' 对象不可下标
我创建了 2 个单独的文件 l:
- Demo1.py
- model.py
主文件内的代码(Demo1.py):
@app.route("/", methods=["GET", "POST"])
def home():
if request.method == "GET":
return render_template("Index.html", message="Bonjour!")
else:
username = request.form["username"]
password = request.form["password"]
if username == "Tom" and password == "sau123":
message= model.show_color("Tom")
return render_template("football.html", message=message)
else:
error_message="Failed, Try Again"
return render_template("Index.html", message=error_message )
@app.route("/football", methods=["GET"])
def football():
return render_template("football.html")
if __name__ == "__main__":
app.run(port=5000, debug=True)
现在,让我提一下model.py 中的代码:
import sqlite3
def show_color(username):
connection = sqlite3.connect("flask.db", check_same_thread=False)
cursor=connection.cursor()
cursor.execute("""SELECT color FROM users WHERE username="{username}" ORDER BY pk DESC;""".format(username=username))
color = cursor.fetchone()[0]
connection.commit()
cursor.close()
connection.close()
message= "{username}/' favorite color is {color}.".format(username=username, color=color)
return message
我不明白为什么会出现此错误。
【问题讨论】:
-
检查数据库中是否存在用户名和对应的颜色。基本上在
show_color中执行了那一行之后,就是说对应的条目不存在了。 -
表单是否传回了一个空值?
标签: python database sqlite flask typeerror