关于python 2.7:flask sqlAlchemy给出未知错误

Flask-SQLAlchemy Gives Unknown Error

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

应用程序只需在URL中接受一个int并返回双倍的值,同时将用户传递的值和时间戳存储在数据库中。

目前,当我进行更新数据库并返回新值的查询时,我在db.session.commit()。

线。

完整代码:

从烧瓶进口烧瓶从flask.ext.sqlAlchemy导入sqlAlchemy导入日期时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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()

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

编辑:

调试错误为:

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


确保运行flask脚本的用户具有在/tmp/test.db上读写的权限,并且'sqlite:////tmp/test.db'中似乎有不必要的额外功能。