【发布时间】:2021-12-06 18:28:05
【问题描述】:
首先,Python 不是我的第一语言,但我正在学习的一门课程需要它,所以我在这里......我正在使用 python 和烧瓶来制作一个简单的登录/注册网站页。制作页面很简单(我认为?),但是在设置注册标准时,我用来检查用户是否已经存在的 for 循环起初工作,但没有更改代码,它不再起作用。我输入“admin”作为用户名,但尽管存在于 txt 文件中,但循环找不到它。我是疯了还是错过了什么?
def info():
with open('passfile.txt', "r") as f:
lines = f.readlines()
for line in lines:
text = line.split()
username = text[0]
print(text[0])
password = text[1]
yield username, password
def add_info(username, password):
with open('passfile.txt', "a") as f:
f.write(username + " " + password +"\n")
@week6.route("/registration", methods=["GET", "POST"])
def register():
"""
function to register a new user
"""
username, password = info()
if request.method == "POST":
un = request.form.get("username")
pw = request.form.get("password")
secure = sc.hash(str(pw))
register.secure = secure
print(un)
if un in username:
flash("That username is already taken")
return render_template("registration.html")
if pw_verify(pw) == True:
add_info(un, secure)
flash("Your officially registered!")
return render_template("registration.html")
【问题讨论】:
-
是缩进不对还是我不对?
-
缩进是对的。由于某种原因,stackoverflow 代码格式化程序搞砸了
-
username 是一个迭代器,它返回
(username, password)对。然后你不能测试if un in username,因为一个字符串不匹配一对。 -
如果这里的缩进没有复制你的实际缩进,edit你的问题并解决它。
-
现在应该修复缩进