2017-09-03 93 views
0

我正在通過構建基本Flask應用程序來學習數據庫:https://www.tutorialspoint.com/flask/flask_sqlalchemy.htm,我目前正處於需要通過我的SQLITE3數據庫連接的點SQLAlchemy的。說實話,它不會那麼好。我得到這個錯誤:NameError:全局名稱 '閃光' 沒有定義NameError:未定義全局名稱'flash'

這裏是我的app.py

#!/usr/bin/python 

from flask import Flask, render_template, json, request 
from flask_sqlalchemy import SQLAlchemy 
import sqlite3 



conn = sqlite3.connect('test.db') 




app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.sqlite3' 
db = SQLAlchemy(app) 


class Students(db.Model): 
    id = db.Column('student_id',db.Integer, primary_key=True) 
    name = db.Column(db.String(80), unique=True) 

    def __init__(self, name, id): 
     self.name = name 
     self.id = id 

    def __repr__(self): 
     return '<Students %r>' % self.name 


db.create_all() 


@app.route("/") 
def main(): 
    return render_template('index.html') 




@app.route('/new', methods = ['GET', 'POST']) 
def new(): 
    if request.method == 'POST': 
     if not request.form['name'] or not request.form['id']: 
     flash('Please enter all the fields', 'error') 
     else: 
     student = Students(request.form['name'], request.form['id']) 
     db.session.add(student) 
     db.session.commit() 

     flash('Record was successfully added') 
     return redirect(url_for('show_all')) 
    return render_template('new.html') 



@app.route("/admin") 
def show_all(): 
    return render_template('show_all.html', students = students.query.all()) 



    # create user code will be here !! 


if __name__ == "__main__": 
    app.run(debug=True) 

的index.html

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <title>Attendance System</title> 


    <link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet"> 

    <link href="http://getbootstrap.com/examples/jumbotron-narrow/jumbotron-narrow.css" rel="stylesheet"> 


</head> 

<body> 

    <div class="container"> 
     <div class="header"> 
      <nav> 
       <ul class="nav nav-pills pull-right"> 
        <li role="presentation" class="active"><a href="#">Home</a> 
        </li> 
        <li role="presentation"><a href="#">Sign In</a> 
        </li> 
        <li role="presentation"><a href="new">Sign Up</a> 
        </li> 
       </ul> 
      </nav> 
      <h3 class="text-muted">Python Flask App</h3> 
     </div> 

     <div class="jumbotron"> 
      <h1>Attendance App</h1> 
      <p class="lead"></p> 
      <p><a class="btn btn-lg btn-success" href="new" role="button">Sign up today</a> 
       <a class="btn btn-lg btn-success" href="show_all" role="button">Administrate</a> 
      </p> 
     </div> 

     <footer class="footer"> 
      <p>&copy; Company 2015</p> 
     </footer> 

    </div> 
</body> 

</html> 

show_all.html

<!DOCTYPE html> 
    <html lang = "en"> 
     <head></head> 
     <body> 

      <h3> 
      <a href = "{{ url_for('show_all') }}">Comments - Flask 
       SQLAlchemy example</a> 
      </h3> 

      <hr/> 
      {%- for message in get_flashed_messages() %} 
      {{ message }} 
      {%- endfor %} 

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

      <table> 
      <thead> 
       <tr> 
        <th>Name</th> 
        <th>Id</th> 
       </tr> 
      </thead> 

      <tbody> 
       {% for student in students %} 
        <tr> 
         <td>{{ student.name }}</td> 
         <td>{{ student.id }}</td> 

       {% endfor %} 
      </tbody> 
      </table> 

     </body> 
    </html> 

**new.html** 

<!DOCTYPE html> 
<html> 
    <body> 

     <h3>Attendance</h3> 
     <hr/> 

     {%- for category, message in get_flashed_messages(with_categories = true) %} 
     <div class = "alert alert-danger"> 
      {{ message }} 
     </div> 
     {%- endfor %} 

     <form action = "{{ request.path }}" method = "post"> 
     <label for = "name">Name</label><br> 
     <input type = "text" name = "name" placeholder = "Name" /><br> 
     <label for = "id">Id Number</label><br> 
     <input type = "text" name = "id" placeholder = "Student Id" /><br> 
     <input type = "submit" value = "Sign-in!" /> 

     </form> 

    </body> 
</html> 

問題:

我不知道,如果連接正常與否,即使錯誤獲得的固定NameError之一,因爲它是第一個對我來說,起初我嘗試使用MySQL,但flask.ext.mysql已過時,所以我嘗試切換到SQLAlchemy和SQLite3。任何幫助是讚賞像我這樣的新手。謝謝!

回答

1

from flask import flash添加到您的代碼中。所有的HTML文件都與這個問題無關。

相關問題