Я пишу простое приложение, чтобы узнать основы Flask и SQLAlchemy. В настоящее время я определил свою базу данных, и без компонента SQLAlchemy (без хранения данных) приложение работает нормально.Flask-SQLAlchemy дает неизвестную ошибку
Приложение просто берет int в URL-адресе и возвращает удвоенное значение, сохраняя при этом значение, переданное пользователем вместе с меткой времени в базе данных.
В настоящее время, когда я сделать запрос, чтобы обновить базу данных и возвращает новое значение, я получаю ошибку 500 на db.session.commit()
линии.
Полный код:
из колба импорта Настоя из flask.ext.sqlalchemy импорта SQLAlchemy импорта DateTime
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()
У меня есть два догадок о том, почему это может происходить: либо некоторые проблемы с получением и форматирование даты и времени, или генерация первичного ключа необходимо выполнить вручную. Однако все, что я видел, будет означать, что ни одна из них не является проблемой. Что нужно сделать для фиксации моей базы данных? Должен ли я выполнять всю работу базы данных в отдельном файле?
Edit:
Ошибка от отладки:
OperationalError: (sqlite3.OperationalError) unable to open database file
Какова фактическая ошибка? Включите отладку с помощью 'app.run (debug = True)' и отредактируйте сообщение с сообщением об ошибке. –
Пожалуйста, найдите ответ в http://stackoverflow.com/questions/4636970/sqlite3-operationalerror-unable-to-open-database-file – Maarten