我正在遵循教程:https://pythonhosted.org/Flask-SQLAlchemy/quickstart.html但我缺少的东西。我使用Pycharm 4.0.6作为解释器。几乎所有东西都在工作但是当我添加db.session.commit()时它说我:内部服务器错误500
服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
@app.route('/')
def hello_world():
db.create_all()
admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
return 'Hello World'
if __name__ == '__main__':
app.run()
答案 0 :(得分:0)
设置&#34; app.debug = True&#34;为了得到一个可以帮助你排除故障的错误信息,我相信@davidism已经击败了我的答案,但只是补充一下,你应该按如下方式捕获SQlAlchemy错误:
from sqlalchemy.exc import SQLAlchemyError
try:
db.session.commit()
except SQLAlchemyError as e:
reason=str(e)
flash(reason)
这样您的应用程序将继续运行,错误消息将在屏幕上闪烁,使您和最终用户更容易纠正错误。
答案 1 :(得分:0)
就我而言,我在模板文件夹之外使用了index.html模板。 当我将index.html文件移到模板文件夹下时,问题已解决。