2017-05-31 119 views
0

我想创建一个存储所有密码的数据库。我遵循这个教程,当我完成和他们完全一样的工作时,它工作,但现在我想创建自己的数据库。我已经做了一个实际的数据库,它显示正确的表和“describe(tablename)”也适用,但是当我从(tablename)中选择*时,它返回空集(0.00秒)。这意味着什么都不存储,但我确实在我的网站上发布了一些密码。Pythonanywhere [烧瓶] - 创建MySQL数据库

这是flask_app.py代码:

from flask import Flask, render_template, request, redirect 
from flask.ext.sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
app.config["DEBUG"] = True 

SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://{username}:{password}@{hostname}/{databasename}".format(
    username="*******", //I filled these in 
    password="*******", 
    hostname="*******.mysql.pythonanywhere-services.com", 
    databasename="******$wachtwoorden", 
) 
app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI 
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299 
db = SQLAlchemy(app) 

class Wachtwoord(db.Model): 

    __tablename__ = "wachtwoorden" 

    id = db.Column(db.Integer, primary_key=True) 
    content = 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"]) 
     return redirect("http://tegelizr.nl/tegeltjes/dat-klopt-als-een-bus.png") 

    else: 
     print ('Iemand heeft een het wachtwoord geraden:', request.form["Knop1"]) 
     return render_template("main_page.html") 

    wachtwoord = Wachtwoord(content=request.form["Knop1"]) 
    db.session.add(wachtwoord) 
    db.session.commit() 

这是我main_page.html

<form method="POST"> 
    <p> 
     <center> 
      <br><br><br><h2>Wat is het wachtwoord?</h2><input type="text" name="Knop1" value = "" /> 
      <br><br><input type="image" src="http://www.kryshiggins.com/wordpress/wp-content/themes/KrystalsNewMergedThemeOMG/Krys_Images/Next_Arrow.png" alt="Submit" width="30" height="30"><br><br><br> 
     </center> 
    </form> 

那么,如何存储密码的正确方法? 对不起,但wachtwoord是指密码。哦,这可能有点令人困惑,因为你只需要提供正确的密码,这是1912年,那么我为什么要存储尝试密码?那么,这对我来说只是一个考验,如果这能起作用,我知道将来如何去做。

谢谢。

回答

0

您正在执行一次返回以呈现您的模板,然后才能够调用您的数据库插入。试试这个:

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"]) 
     wachtwoord = Wachtwoord(content=request.form["Knop1"]) 
     db.session.add(wachtwoord) 
     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"]) 
     return render_template("main_page.html") 
+0

非常感谢,它的工作原理:) – Jip1912

+0

小问题,如果我想添加其他文本输入,其中包含某人的名字是什么。这是request.form [“Knop2”]。我将如何让它存储到我的数据库中,如“request.form [”Knop2“]:request.form [”Knop1“]”,换句话说“名称:密码” – Jip1912

+0

@ Jip1912我建议阅读在这个链接:http://docs.sqlalchemy.org/en/latest/orm/tutorial.html。它将为您提供使用SQLAlchemy所需的所有基本知识。你也可以看看这个网站,这是一个更全面的:http://www.rmunn.com/sqlalchemy-tutorial/tutorial.html – CodeLikeBeaker