2016-08-05 15 views
0

Als Anfänger habe ich das Tutorial Tutorialpoint für Kolben unter URL: http://www.tutorialspoint.com/flask/flask_sqlite.htm versucht.OperationalError: keine solche Tabelle: Studenten

Doch nach diesem Fehler

jinja2.exceptions.TemplateNotFound TemplateNotFound: home.html

, die zeigen sollten: 1. Hinzufügen neuer Rekord 2. Liste anzeigen

ich das tat folgende:

<h3>Students (<a href = "{{ url_for('new_student') }}">Add new record 
    </a>)</h3> 

    <h3> (<a href = "{{ url_for('list') }}">Show List 
    </a>)</h3> 

Allerdings denke ich, dass es andere Fehler geben kann rs.

Jetzt erhalte ich folgende Fehlermeldung:

sqlite3.OperationalError 
    OperationalError: no such table: students 

Könnte jemand helfen das Tutorial Arbeit machen? Sehr geschätzt. * ps: Bitte notieren Sie diesen Beitrag nicht. Wenn du nicht helfen kannst oder willst. Überlassen Sie diese Frage nur Menschen, die bereit sind, Anfängern zu helfen. Vielen Dank.

Ref: http://www.tutorialspoint.com/flask/flask_sqlite.htm

Hier sind die kopieren und einfügen, wie durch @Wayne angefordert:

'student.html':

<html> 
    <body> 

     <form action = "{{ url_for('addrec') }}" method = "POST"> 
     <h3>Student Information</h3> 
     Name<br> 
     <input type = "text" name = "nm" /></br> 

     Address<br> 
     <textarea name = "add" ></textarea><br> 

     City<br> 
     <input type = "text" name = "city" /><br> 

     PINCODE<br> 
     <input type = "text" name = "pin" /><br> 
     <input type = "submit" value = "submit" /><br> 
     </form> 

    </body> 
</html> 

result.html:

<!doctype html> 

    <html> 
     <body> 

      result of addition : {{ msg }} 
      <h2><a href = "\">go back to home page</a></h2> 

     </body> 
    </html> 

list.html:

<!doctype html> 
<html> 
    <body> 

     <table border = 1> 
     <thead> 
      <td>Name</td> 
      <td>Address>/td< 
      <td>city</td> 
      <td>Pincode</td> 
     </thead> 

     {% for row in rows %} 
      <tr> 
       <td>{{row["name"]}}</td> 
       <td>{{row["addr"]}}</td> 
       <td> {{ row["city"]}}</td> 
       <td>{{row['pin']}}</td> 
      </tr> 
     {% endfor %} 
     </table> 

     <a href = "/">Go back to home page</a> 

    </body> 
</html> 

Flask-SQLite Anwendung:

from flask import Flask, render_template, request 
import sqlite3 as sql 
app = Flask(__name__) 

@app.route('/') 
def home(): 
    return render_template('home.html') 

@app.route('/enternew') 
def new_student(): 
    return render_template('student.html') 

@app.route('/addrec',methods = ['POST', 'GET']) 
def addrec(): 
    if request.method == 'POST': 
     try: 
     nm = request.form['nm'] 
     addr = request.form['add'] 
     city = request.form['city'] 
     pin = request.form['pin'] 

     with sql.connect("database.db") as con: 
      cur = con.cursor() 

      cur.execute("INSERT INTO students (name,addr,city,pin) 
       VALUES (?,?,?,?)",(nm,addr,city,pin)) 

      con.commit() 
      msg = "Record successfully added" 
     except: 
     con.rollback() 
     msg = "error in insert operation" 

     finally: 
     return render_template("result.html",msg = msg) 
     con.close() 

@app.route('/list') 
def list(): 
    con = sql.connect("database.db") 
    con.row_factory = sql.Row 

    cur = con.cursor() 
    cur.execute("select * from students") 

    rows = cur.fetchall(); 
    return render_template("list.html",rows = rows) 

if __name__ == '__main__': 
    app.run(debug = True) 
+1

Bitte genug von dem Rest des Codes hinzufügen, so dass Sie eine haben [MCVE] –

+0

Achten Sie darauf, die Studenten-Tabelle erstellt und die Datenbank-Datei ist das gleiche. Falls Zweifel bestehen, verwenden Sie einen absoluten Pfad. –

Antwort

0

Es ist ein Tippfehler auf einem anderen Code, der eindeutig festgestellt werden, sollte die Datenbank einzurichten ausgeführt zu werden. Führen Sie das zuerst aus, und es sollte jetzt funktionieren.

import sqlite3 

conn = sqlite3.connect('database.db') # formerly typo as 'databsae.db' 
print "Opened database successfully"; 

conn.execute('CREATE TABLE students (name TEXT, addr TEXT, city TEXT, pin TEXT)') 
print "Table created successfully"; 
conn.close() 
Verwandte Themen