01/10/2018, 09:31
Hỏi về lỗi trong code python
Chào mọi người, mình đang tập làm 1 cái web bằng Flask và Python. Mình đã setup Db và đây là code để đăng nhập của mình:
@app.route('/login/', methods=["POST","GET"])
def loginpage():
message=""
c, conn = connection()
try:
if request.method=="GET":
return render_template("login.html",message=message)
if request.method=="POST":
data=c.execute("SELECT * FROM user WHERE username = '%s'"%(request.form['username']) )
data=c.fetchone()[2]
if data==request.form['password']:
message = "Success"
session['loged-in']=True
session['username']="flag{lol_lel_lul}"
return render_template("login.html",message=message)
else :
message ="Unknown user"
return render_template("login.html",message=message)
except Exception as e:
message=str(e)
return render_template("login.html", message=message)
Nhưng khi mình test thử thì nó luôn trả về lỗi này 'NoneType' object has no attribute '__getitem__'
mình fix nãy giờ nhưng vẫn chưa có gì khả quan hơn
Ai có thể giúp mình được không??
Bài liên quan
Nó không báo lỗi ở dòng nào hả bạn? Có thể lỗi này xuất hiện do bạn đang cố gắng lấy phần tử từ 1 list/object nhưng function không trả về gì cả (
None
).Lỗi có thể nằm ở:
c.fetchone()[2]
(do kết quả trả về là None thì không lấy index=2 được).session
không có các keys:'loged-in', 'username'
.Mình chỉ đoán thế thôi, có sai thì mình không nhận gạch đá đâu
có thể phần
session['loged-in']
của mình bị sai,phải là logged_in mới đúng để mình coi lại xem saoMình khá ngạc nhiên vì mình làm theo tut trên youtube họ chạy bình thường còn mình thì có lỗi này