2015-02-04 3 views
0

에 문제 내가 세션에서 사용자 ID를 저장할하고이 일을 같이 간단 할 것이라고 생각 :파이썬 - 플라스크 및 세션

session['login_id'] = data[0] 

을하지만 내 파이썬 스크립트를 실행할 때 오류 메시지가 다음 얻을 :

TypeError: 'NoneType' object has no attribute '__getitem__' 

누군가 나를 도울 수 있기를 바랍니다. 감사.

여기서 에러 MSG 아래 인 코드

from flask import Flask, render_template, request, redirect, url_for, abort, session 
from flaskext.mysql import MySQL 

mysql = MySQL() 
app = Flask(__name__) 

app.config['MYSQL_DATABASE_USER'] = 'username' 
app.config['MYSQL_DATABASE_PASSWORD'] = 'password' 
app.config['MYSQL_DATABASE_DB'] = 'database' 
app.config['MYSQL_DATABASE_HOST'] = 'host' 
mysql.init_app(app) 

@app.route('/signin', methods=['POST']) 
     def signin(): 
     username = request.form['txt_login'] 
     password = request.form['txt_pass'] 
     cursor = mysql.connect().cursor() 
     cursor.execute("SELECT * from users where login_name='" + username + "' and password='" + password + "'") 
     data = cursor.fetchone() 
     session['login_id'] = int(data[0]) 
     if data is None: 
      return render_template('authenticate.html', error="Invalid username or password") 
     else: 
      return redirect(url_for('home')) 

if __name__ == '__main__': 
    app.secret_key = 'A0Zr98jRT#142DS4#sdfs4' 
    app.run(host="0.0.0.0") 

이다.

File "render_template.py", line 29, in signin session['login_id'] = int(data[0]) TypeError: 'NoneType' object has no attribute 'getitem'

+0

'데이터'변수가 설정되어 있습니까? 'None' 인 것처럼 보입니다. – Fenikso

+1

코드의 일부 또는 기능을 게시 할 수 있습니까? – FunkySayu

+0

이 경우에는'data' 변수가'None'이라는 것을 지적하는 것 외에는 우리가 도움을 줄 수있는 것이 많지 않습니다. 어떤 오류 메시지가 이미 알려줍니다. 문제를 재현하기 위해 더 많은 코드를 제공해야합니다. –

답변

0

당신은 "SECRET_KEY" 매개 변수를 구성 했습니까? Quickstart - Flask Documentation에서 볼 수 있듯이 세션 기능을 사용하려면 비밀 키를 설정해야합니다.

희망이 있으면 도움이 될 것입니다.

0

분명히 파이썬에서 멍청한 놈, 나는 잘못된 SQL 쿼리를 모두 가지고 있었다. 도와 주신 모든 분들께 감사드립니다.

관련 문제