简体   繁体   English

sqlite3注册数据库不更新

[英]sqlite3 registration database not updating

I'm making a simple registration page in Flask using sqlite. I did a test run manually and this worked:我正在使用 sqlite 在 Flask 中创建一个简单的注册页面。我手动进行了一次测试运行,并且成功了:

import sqlite3
db = sqlite3.connect('database.db')
c = db.cursor()

username = "bb"
password = "vv"

c.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
db.commit()

But I can't get this to work in my app.py (below is a greatly simplified version)但是我不能让它在我的 app.py 中工作(下面是一个大大简化的版本)

@app.route("/register", methods=["GET", "POST"])
def register():
    if request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("password")
        confirmation = request.form.get("confirmation")

        try:
            c.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
            db.commit()
            return render_template("login.html")
        except:
            return apology("username is already registered")

    else:
        return render_template("register.html")

I get redirected to my apology page (Username is already registered).我被重定向到我的道歉页面(用户名已经注册)。 My database.db is empty:( Any help would be appreciated, new to the community and coding.我的 database.db 是空的:(任何帮助将不胜感激,对社区和编码来说是新的。

The issue: "SQLite objects created in a thread can only be used in that same thread."问题:“在一个线程中创建的 SQLite 对象只能在同一个线程中使用。”

I just added the cursor and now it works我刚刚添加了 cursor,现在可以使用了

c = c = db.cursor()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM