我对编程相当陌生.我以前try 过MySQL,但现在这是我第一次在python网站上使用SQLite.

Piece of my code: 

@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()

The error:
 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文件中的密码?

非常感谢.

推荐答案

光标"c"不是在同一个线程中创建的;它可能是在Flask应用程序运行时初始化的.

您可能希望用相同的方法生成SQLite对象(conneciton和游标),例如:

  @app.route('/')
  def dostuff():
    with sql.connect("database.db") as con:
      name = "bob"
      cur = con.cursor()
      cur.execute("INSERT INTO students (name) VALUES (?)",(name))
      con.commit()
      msg = "Done"

Mysql相关问答推荐

插入时发生日期时间字段溢出错误

带有值分隔的MySQL分组不起作用

MySQL-带有用户定义变量的IF-THEN语句

根据现有行 Select 月份日期

MySQL 8.0.33 Select json列时出现错误:排序内存不足,请考虑增加服务器排序缓冲区大小

go&mysql&docker 拒绝连接

如何使用减号运算符编写 sql 查询以返回缺少相应值的行?

SQL 根据多行值获取记录

查询给出错误时的 mySQL Group_Concat 和 Case

使用 MySQL 流式传输大型结果集

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

如何查看打开了多少 MySQL 连接?

从mysql中的大表中快速 Select 随机行

使用 PHP 和 MySQL 存储和显示 unicode 字符串 (हिन्दी)

Mysql中int(10)的最大大小是多少

启用 NO_BACKSLASH_ESCAPES 选项时如何转义文字百分号?

MySQL更新查询与左连接和分组依据

BIGINT mysql 性能与 INT 相比

为什么 GRANT 在 MySQL 中不起作用?

SELECT INTO 和未声明的变量错误