启动flask python

时间:2015-04-22 10:25:40

标签: python flask sqlalchemy flask-sqlalchemy

我正在遵循教程: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()

2 个答案:

答案 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文件移到模板文件夹下时,问题已解决。