【发布时间】:2015-06-26 06:47:09
【问题描述】:
我正在编写一个简单的应用程序来学习 Flask 和 SQLAlchemy 基础知识。目前,我已经定义了我的数据库,并且没有 SQLAlchemy 组件(没有数据存储),应用程序可以正常工作。
应用程序只需在 URL 中获取一个 int 并返回加倍的值,同时将用户传递的值与时间戳一起存储在数据库中。
目前,当我进行查询以更新数据库并返回新值时,我在 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
【问题讨论】:
-
实际错误是什么?使用
app.run(debug=True)打开调试并使用错误消息编辑您的帖子。
标签: python-2.7 flask sqlalchemy flask-sqlalchemy