python - Sqlite从数据库中操作字符串

标签 python html sqlite

在我的登录方法中,我试图检查数据库中的密码是否与用户提交的密码相对应。我使用这段代码:

@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
db = get_db()
if request.method == 'POST':
    cur = db.execute('select password from users where username = ?', (request.form['username'], ))
    password = cur.fetchone()
    print password
    print request.form['password']
    if request.form['password'] != password:
        error = 'Invalid username/password combination'
    else:
        session['logged_in'] = True
        flash('You were logged in')
        return redirect(url_for('show_entries'))
return render_template('login.html', error=error)

例如,当密码为默认值时,打印命令显示如下:

print password : (u'default',)
print request.form['password'] : default

所以它们确实不相等。有人知道如何解决这个问题吗?

最佳答案

数据库返回的每一行都是一个列的元组。您检索了一行 (.fetchone()),该行是一个包含一个元素的元组(您仅选择​​了 password 列)。只需使用它的索引将其从元组中取出即可:

password = cur.fetchone()[0]

关于python - Sqlite从数据库中操作字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365807/

相关文章:

python - 从 pandas 日期列中减去当前时间

python - 如何在 Python 中解析这个自定义日志文件

javascript - Polymer CSS 内联元素对齐

html - 在 LI 元素中显示水平滚动条并强制水平溢出

sqlite - 部署Universal App后,已部署的SQLite数据库为空

python - 在 CSV 文件中写入和读取 float 和字符串 - python

python - django.db.utils.DatabaseError : ORA-12154: TNS:could not resolve the connect identifier specified 错误

java - 运行 docx4j createhtml.java 文件时出错

java - Android Studio 中突然出现编译错误;错误 : cannot find symbol class ComputableLiveData

android - 如何在android房间中使用distinct