2017-06-01 16 views
0

我使用这个代码数据库添加2个值:MySQL的 - - Pythonanywhere同时

class Wachtwoord(db.Model): 

    __tablename__ = "wachtwoorden" 

    id = db.Column(db.Integer, primary_key=True) 
    pogingen = db.Column(db.String(80)) 
    namen = db.Column(db.String(80)) 

@app.route("/", methods=["GET", "POST"]) 

def main(): 

    if request.method == "GET": 
     print("in request.method = get") 
     return render_template("main_page.html") 

    if (request.form["Knop1"] == "1912"): 
     print ('Het wachtwoord is geraden:', request.form["Knop1"]) 
     poging = Wachtwoord(pogingen=request.form["Knop1"]) 
     naam = Wachtwoord(namen=request.form["Knop2"]) 
     db.session.add(poging) 
     db.session.add(naam) 
     db.session.commit() 
     return redirect("http://tegelizr.nl/tegeltjes/dat-klopt-als-een-bus.png") 

    else: 
     print ('Iemand heeft een het wachtwoord geraden:', request.form["Knop1"]) 
     poging = Wachtwoord(pogingen=request.form["Knop1"]) 
     naam = Wachtwoord(namen=request.form["Knop2"]) 
     db.session.add(poging, naam) 
     db.session.commit() 
     return render_template("main_page.html") 

当我使用这个代码,我做“SELECT * FROM wachtwoorden;”,它返回:

https://i.gyazo.com/e83343d29e65b754bce97fd36a8248e3.png

所以它返回:pogingen空,然后下一行空namen。我怎样才能使它pogingen-namen,没有“空”。我在db.session.add()之后添加了db.session.commit(),为什么它不起作用?

谢谢。

回答

0

在你的代码有这样的:

poging = Wachtwoord(pogingen=request.form["Knop1"]) 
    naam = Wachtwoord(namen=request.form["Knop2"]) 
    db.session.add(poging) 
    db.session.add(naam) 

这意味着你告诉系统创建两个新的Wachtwoord对象,其中之一有pogingen设置为request.form["Knop1"],并且未设置namen,以及其他有namen设置为request.form["Knop2"],并且pogingen未设置。

所以答案,为什么它在数据库中创建两行是你告诉它要做到这一点:-)

要创建单个Wachtwoord与在其上设置的两个值,只是这样做:

wachtwoord = Wachtwoord(pogingen=request.form["Knop1"], namen=request.form["Knop2"]) 
    db.session.add(wachtwoord) 
+0

啊,我明白了。非常感谢! :) – Jip1912