【发布时间】:2021-02-06 23:16:22
【问题描述】:
通过调试我发现函数没有到达 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', '/'))
【问题讨论】:
-
当
request.form.get('creategame')不是表单内的字段时,您期望返回什么? -
感谢您阐明它是如何工作的,我将如何使其成为表单中的一个字段?
-
没想到我是个白痴
-
请不要称自己为白痴。如果您找到了可以帮助其他人的解决方案,您可以发布答案。如果您发现错字或发现您的问题无效,您可以随时将其删除
标签: python html sqlite sqlalchemy