flask和sqlite3-在“insert into”sql命令可以工作之前,是否需要用数据填充表?

fzsnzjdm  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(202)

在使用sqlite3创建flask站点时,我注意到如果我尝试插入(使用web表单)数据库,当数据库为空时,不会产生错误,但不会发生任何事情,插入(sql)将不会生效。
我必须使用预先生成的查询手动填充数据库,然后,在不更改代码中任何其他内容的情况下,插入到表单中的操作很正常。
有人能解释一下为什么会发生这种事吗?我假设没有必要为了在flask/sqlite3中使用/运行而填充数据库。
我不知道这是否和我的设置有关。
创建-db.py

import sqlite3
db_locale='users.db' #flask will create this db if it doesn't exist

connie=sqlite3.connect(db_locale)
c=connie.cursor() #used to create commands

c.execute("""

CREATE TABLE comments
(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT,
    name TEXT,
    comments TEXT
)

    """)

connie.commit()
connie.close()

main.py文件中的addcomment()和insertcomment()方法

def addcomment():
    if request.method=="GET":
        return render_template('addcomment.html')
    else:
        user_details=(
            request.form['title'],
            request.form['name'],
            request.form['comments']

            )
        insertcomment(user_details)
        return render_template('addsuccess.html')

def insertcomment(user_details):
    connie=sqlite3.connect(db_locale)
    c=connie.cursor()
    sql_execute_string='INSERT INTO comments (title,name,comments) VALUES (?,?,?)';
    c.execute(sql_execute_string,user_details)
    connie.commit()
    connie.close()
    print(user_details)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题