Я хочу, чтобы хранить идентификатор пользователя в сеансе и думал, что это будет так просто, как это сделать:Python - Проблема с колбой и сессии
session['login_id'] = data[0]
Но когда я бегу мой питон скрипт я получаю следующее сообщение об ошибке :
TypeError: 'NoneType' object has no attribute '__getitem__'
Надеюсь, что кто-то может мне помочь. Благодарю.
Вот код
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'
Является ли ваша переменная 'data' заданной? Похоже, это «Нет». – Fenikso
Можете ли вы также опубликовать функцию/часть кода? – FunkySayu
Мы не можем помочь, кроме указания на то, что переменная 'data' является' None' в этом случае (какое сообщение об ошибке уже сообщает вам). Вам нужно предоставить больше кода, чтобы воспроизвести проблему. –