python - 在一个线程中创建的对象只能在同一个线程中使用

标签 python mysql sqlite flask

我找不到问题:

@app.route('/register', methods=['GET', 'POST'])
def register():
    form = RegisterForm(request.form)
    if request.method=='POST' and form.validate():
        name =  form.name.data 
        email = form.email.data
        username = form.username.data
        password = sha256_crypt.encrypt(str(form.password.data))

        c.execute("INSERT INTO users(name,email,username,password) 
        VALUES(?,?,?,?)", (name, email, username, password))

        conn.commit

        conn.close()

错误:

File "C:\Users\app.py", line 59, in register c.execute("INSERT INTO users(name,email,username,password) VALUES(?,?,?,?)", (name, email, username, password)) ProgrammingError: SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 23508 and this is thread id 22640

这是否意味着我不能在 HTML 文件中使用姓名、电子邮件用户名和密码?我该如何解决?

最佳答案

在您连接到数据库的地方添加以下内容。

conn = sqlite3.connect('your.db', check_same_thread=False)

关于python - 在一个线程中创建的对象只能在同一个线程中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218065/

相关文章:

python - 如何向 tkinter 标签添加左边框或右边框

python - Tensorflow的API : seq2seq

mysql - Spark 应用程序中的 Hive 中的 "Unable to alter partition"

mysql - 如何从 Linux 上的 asp.net 核心应用程序迁移我的表

node.js - 使用 SQLite3 和 ExpressJs 时,如何确保 app.get() 在调用 db.each() 方法时不是异步的?

python - Django Auth 模型问题 - AUTH_USER_MODEL 未安装

python - 如何使用 . 在 python 3.7 中导入 dstk

mysql - 如何将 .sql 文件作为 MySQL Workbench 6.2 查询的一部分运行?

javascript - 从phoneGap的SQlite DB检索值时出错

sqlite - 在 Windows Phone 8 中使用 SQLite 时无法使用商店测试工具包