通过HTML和SQL炼金术表单更新数据库不起作用



通过调试,我发现函数没有达到if语句,但我不知道如何解决这个问题,我猜表单没有正确调用函数,但不知道为什么。

这是我将数据添加到的表格

class Game(db.Model):
__tablename__ = 'games'
ID = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text, unique=True)
dateadded = db.Column(db.Date)
useradded = db.Column(db.ForeignKey('userinfo.username'))
description = db.Column(db.Text, unique=True)
datepublished = db.Column(db.Date)
publisher = db.Column(db.ForeignKey('publishers.publishername'))
developer = db.Column(db.ForeignKey('developers.developername'))
developer1 = db.relationship('Developer', primaryjoin='Game.developer == Developer.developername', backref='games')
publisher1 = db.relationship('Publisher', primaryjoin='Game.publisher == Publisher.publishername', backref='games')
userinfo = db.relationship('Userinfo', primaryjoin='Game.useradded == Userinfo.username', backref='games')

HTML表单

{% if session.get('user') %}
<br>
<form method="POST" name="creategame" action="/creategame">
<input type="text" name="gamename" placeholder="game name">
<input type="text" name="description" placeholder="game description">
<input type="date" name="datepublished" placeholder="date published">
<input type="text" name="publisher" placeholder="publisher">
<input type="text" name="developer" placeholder="developer">
<input type="hidden" value="{{ request.path }}" name="from"> 
<input type="submit" class="button" value="Add Game">
</form>
{% endif %}
<br>

Python sqlalchemy函数

@app.route('/creategame', methods=["POST"])
def creategame():
user=current_user()
if user:
new_game = Game()
new_publisher = Publisher()
new_developer = Developer()
new_game.name = request.form.get('gamename')
new_game.dateadded = datetime.datetime.now()
#new_game.dateadded = str(new_game.dateadded)
#new_game.dateadded = new_game.dateadded.split(" ")
#new_game.dateadded.pop(1)
#new_game.dateadded = str(new_game.dateadded)
#print(new_game.dateadded)
new_game.useradded = current_user()
new_game.description = request.form.get('description')
new_game.datepublished = request.form.get('datepublished')
new_game.publisher = request.form.get('publisher')
new_publisher.publishername == new_game.publisher
new_game.developer = request.form.get('developer')
new_developer.developername == new_game.developer
print(new_game.name, new_game.dateadded, new_game.useradded, new_game.description, new_game.datepublished, 
new_game.publisher, new_game.developer) # debug
if request.form.get('creategame'):
print(new_game.name, new_game.dateadded, new_game.useradded, new_game.description, new_game.datepublished, 
new_game.publisher, new_game.developer) # debug
print("here the second") # debug
db.session.add(new_developer)
db.session.commit()
db.session.add(new_publisher)
db.session.commit()
db.session.add(new_game)
db.session.commit()
return redirect(request.form.get('from', '/'))

已更改:

if request.form.get('creategame'):

至:

if request.form.get('gamename'):

因此实际上有一个字段可以触发if语句

最新更新