在使用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)
暂无答案!
目前还没有任何答案,快来回答吧!