Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-Flask和会话的问题_Python_Flask - Fatal编程技术网

Python-Flask和会话的问题

Python-Flask和会话的问题,python,flask,Python,Flask,我想在会话中存储一个用户id,并认为这样做很简单: session['login_id'] = data[0] 但当我运行python脚本时,会收到以下错误消息: TypeError: 'NoneType' object has no attribute '__getitem__' 希望有人能帮我。谢谢 这是密码 from flask import Flask, render_template, request, redirect, url_for, abort, session from

我想在会话中存储一个用户id,并认为这样做很简单:

session['login_id'] = data[0]
但当我运行python脚本时,会收到以下错误消息:

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")
下面是错误消息

文件render_template.py,第29行,登录 会话['login_id']=intdata[0] TypeError:“非类型”对象没有属性“getitem”

您是否配置了密钥参数?如中所示,如果要使用会话功能,必须设置密钥


希望这能有所帮助。

好的,显然是python中的一个难题,我的SQL查询完全错了。谢谢大家的帮助

数据变量是否已设置?它看起来是无的。你也可以发布函数/代码的一部分吗?除了指出数据变量是无的之外,我们没有什么可以帮助的,在这种情况下,错误消息已经告诉你了。您需要为我们提供更多代码来重现该问题。您必须给出代码,说明如何传递或初始化数据变量。数据绑定为“无”。这与烧瓶无关;表达式的右侧抛出excetpion。