Flask-SQLAlchemy 给出未知错误

Flask-SQLAlchemy Gives Unknown Error

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

该应用程序仅在 URL 和 return 中获取一个整数值,同时将用户传递的值与数据库中的时间戳一起存储。

目前,当我查询更新数据库和 return 新值时,我在 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

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