作者:无视一个水阿哥_470 | 来源:互联网 | 2023-01-20 10:53
我正在通过以下教程构建基本的Flask应用程序来学习数据库:https://www.tutorialspoint.com/flask/flask_sqlalchemy.htm我目前正处于需要连接到SQLITE3数据库的位置通过SQLAlchemy.说实话,它并不顺利.我收到此错误: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 '' % 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
show_all.html
{%- for message in get_flashed_messages() %}
{{ message }}
{%- endfor %}
Name |
Id |
{% for student in students %}
{{ student.name }} |
{{ student.id }} |
{% endfor %}
**new.html**
Attendance
{%- for category, message in get_flashed_messages(with_categories = true) %}
{{ message }}
{%- endfor %}
问题:
我不知道连接是否有效,即使错误得到修复,NameError
因为它是我的第一个,起初我尝试使用MySQL但不推荐使用flask.ext.mysql,所以我尝试切换到SQLAlchemy和SQLite3 .对于像我这样的新手,我感激不尽.谢谢!
1> DYZ..:
添加from flask import flash
到您的代码中.所有HTML文件都与问题无关.