Flask-SQLAlchemy给出了未知错误

时间:2015-04-19 16:41:23

标签: python-2.7 flask sqlalchemy flask-sqlalchemy

我正在编写一个简单的应用程序来学习Flask和SQLAlchemy基础知识。目前,我已经定义了我的数据库,没有SQLAlchemy组件(没有数据存储),应用程序运行正常。

应用程序只需在URL中获取一个int并返回doubled值,同时存储用户传递的值以及数据库中的时间戳。

目前,当我进行查询以更新数据库并返回新值时,我得到500错误     db.session.commit()

线。

完整代码:

来自烧瓶导入烧瓶的

    来自于flask.ext.sqlalchemy导入SQLAlchemy     导入日期时间

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

class Call(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    call_value = db.Column(db.Integer)
    call_time = db.Column(db.Integer)

    def __init__(self,user_input):
        self.call_value = user_input
        self.call_time = datetime.datetime.now()

    def __repr__(self):
        return '<Doubled %r>' % self.call_value

@app.route('/doubler/<int:val>', methods=['GET'])
def show_double(val):
    query = Call(val)
    db.session.add(query)
    db.session.commit()
    return "Value: " + str(2*val)

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

我有两个问题可能发生这种情况:获取和格式化日期时间的某些问题,或者需要手动完成主键生成。但是,我所看到的一切都表明这些都不是问题。提交到我的数据库需要做什么?我应该在一个单独的文件中完成所有数据库工作吗?

编辑:

调试错误是:

OperationalError: (sqlite3.OperationalError) unable to open database file

1 个答案:

答案 0 :(得分:0)

确保运行Flask脚本的用户具有阅读和阅读权限的权限。写在/tmp/test.db上,似乎'sqlite:////tmp/test.db'中有一个不必要的额外内容。