>source

인증 웹 앱을 만들고 데이터베이스에 데이터를 삽입하고 커밋하려고하지만 여전히 작동하지 않습니다. 나는 flask-sqlite를 사용하고 있지만 성공이라고 말하지만/list 끝점으로 가면 비어 있고 콘솔에서 아무것도 인쇄하지 않습니다. 다음은 전체 코드입니다.


from flask import Flask, render_template, request, url_for
import sqlite3  
app = Flask(__name__)
  
con = sqlite3.connect("details.db")  
print("Database opened successfully")  
  
con.execute("create table if not exists Users (id INTEGER PRIMARY KEY AUTOINCREMENT, email TEXT UNIQUE NOT NULL, password TEXT NOT NULL)")  
  
print("Table created successfully")  
  
con.close()  
@app.route('/signup', methods=['GET', 'POST'])
def signup():
    msg = "" 
    if request.method == "POST":  
        try:  
            email = request.form["email"]  
            password = request.form["password"]  
            print(name, email)
            with sqlite3.connect("details.db") as con:  
                cur = con.cursor()  
                cur.execute("INSERT into Users (email, password) values (%s, %s)",(email, password))  
                cur.commit()  
                msg = "User successfully Added"  
        except Exception as err:  
            con.rollback()  
            msg = "Sorry We Can't Signup You"  
        finally:  
            return render_template("res.html",msg = msg)  
            con.close()  
@app.route("/signup-page")
def signupTemplate():
    return render_template('index.html')
@app.route("/list")
def list_users():
    con = sqlite3.connect("details.db")
    con.row_factory = sqlite3.Row
    cur = con.cursor()
    cur.execute("select * from Users")
    row = cur.fetchall()
    email = ""
    password = ""
    for rows in row:
        email = rows["email"]
        password = rows["password"]
    con.close()
    return render_template("list.html", email=email,password=password)
app.run(debug=True)

  • 답변 # 1

    이 두 줄을 변경하십시오.

    cur.execute(f"INSERT into Users (email, password) values ('{email}', '{password}')")  
    con.commit()
    
    

    쿼리에서 형식 문자열을 사용할 수 있습니다. connection.commit() 커서가 아닙니다.

관련 자료

  • 이전 css - Javascript에서 x 축에서 모든 텍스트를 x도 회전하는 방법
  • 다음 c++ - free ()로 인해 메모리 누수가 발생할 수 있습니까?