检查 POST 得到的数据是否已经存在于数据库中

POST 得到的数据如果已经存在于数据库 Genre 表里,应该显示“该数据已存在于数据库中”,但代码出现问题,只会直接显示“未能将指定内容加入数据库”

@app.route('/add/genre', methods = ['POST'])
def add_genre():
    if request.method == 'POST':
        genre = request.form['genre']
    conn = sqlite3.connect("Mydatabase.db")
    cur = conn.cursor()
    cur.execute("SELECT Name FROM Genre")
    genreName = cur.fetchall()
    string = "成功添加 " + genre + " 到数据库."
    prompt = {string}
    error = ""
    if genre in genreName:     // ←
        prompt = {"该数据已存在于数据库中"}
        error = "exist"
    else:
        with sqlite3.connect("Mydatabase.db") as conn:
            try:
                cur = conn.cursor()
                cur.execute("INSERT INTO Genre (Name) VALUES (?)", ('genre'))
                conn.commit()
            except:
                prompt = {"未能将指定内容加入数据库"}
                error = "exist"
    
    return render_template('add_genre.html', messages=prompt, error=error)

提下建议
1、如果数据量非常大,这样直接读整个库 , 内存资源用太大。
2、建议改成这样的逻辑(按你的代码,大概做了调整,没验证过)

@app.route('/add/genre', methods=['POST'])
def add_genre():
    prompt = {"没有数据"}
    error = "error"
    if request.method == 'POST':
        genre = request.form['genre']
        conn = sqlite3.connect("Mydatabase.db")
        cur = conn.cursor()
        cur.execute("SELECT Name FROM Genre where name = '{}'".format(genre))
        genreName = cur.fetchall()
        if len(genreName)>0:
            prompt = {"该数据已存在于数据库中"}
            error = "exist"
        else:
            try:
                cur = conn.cursor()
                cur.execute("INSERT INTO Genre (Name) VALUES (?)", ('genre'))
                conn.commit()
            except:
                prompt = {"未能将指定内容加入数据库"}
                error = "exist"
            
            string = "成功添加 " + genre + " 到数据库."
            prompt = {string}
            error = ""

        
return render_template('add_genre.html', messages=prompt, error=error)