2017-06-01 17 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