好吧,我为自己做了一个测试清单系统,我手动提交每个项目,但是我在提交时遇到了问题。我已经解决了所有的html和python,但是当尝试提交所有内容时,会弹出一个错误,说integrityerror:notnull约束failed:posts.condition。
这是我的密码:
应用程序类型
from flask_cors import CORS
from models import create_post, get_posts
app = Flask(__name__)
CORS(app)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'GET':
pass
if request.method == 'POST':
post = request.form.get('post')
item = request.form.get('item')
TimenDate = request.form.get('TimenDate')
condition = request.form.get('condition')
history = request.form.get('history')
create_post(item,TimenDate, condition, history)
posts = get_posts()
return render_template('index.html', posts=posts)
if __name__ == '__main__':
app.run(debug=True)
abb.sql文件:
create table posts (
id integer primary key autoincrement,
item text not null,
TimenDate text not null,
condition text not null,
history text not null
);
models.py文件:
from os import path
ROOT = path.dirname(path.relpath((__file__)))
def create_post(item,TimenDate,condition, history):
con = sql.connect(path.join(ROOT, 'database.db'))
cur = con.cursor()
cur.execute('insert into posts (item, TimenDate,condition, history) values( ?, ?, ?, ?)', (item, TimenDate, condition, history))
con.commit()
con.close()
def get_posts():
con = sql.connect(path.join(ROOT, 'database.db'))
cur = con.cursor()
cur.execute('select * from posts')
posts = cur.fetchall()
return posts
我的html文件:
<!doctype html>
<html>
<body>
<form action='/' role='form' method='POST'>
<input placeholder='Item' name='item'>
<input placeholder='TimenDate' name='TimenDate'>
<input placeholder='Condition' name='Condition'>
<input placeholder='History' name='History'>
<input type='submit' value='Submit'>
</form>
{% for post in posts %}
<div>{{ item[1] + ': ' + TimenDate[3]+ ': ' +Condition[5]+ ': ' +History[6]}}</div>
{% endfor %}
</body>
</html>
最后是错误:
create_post(item,TimenDate, condition, history)
File "/Users/mylaptop/ABB/models.py", line 9, in create_post
Open an interactive python shell in this framecur.execute('insert into posts (item, TimenDate,condition, history) values( ?, ?, ?, ?)', (item, TimenDate, condition, history))
谢谢你们的反馈。我确信它与abb.sql文件和数据库有关,但我不知道它是什么,为什么。
1条答案
按热度按时间oug3syen1#
表单所发布的内容与路由所期望的内容之间存在多个大写冲突。例如
和