2015-04-19 4 views
0

Я пишу простое приложение, чтобы узнать основы 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 
+0

Какова фактическая ошибка? Включите отладку с помощью 'app.run (debug = True)' и отредактируйте сообщение с сообщением об ошибке. –

+0

Пожалуйста, найдите ответ в http://stackoverflow.com/questions/4636970/sqlite3-operationalerror-unable-to-open-database-file – Maarten

ответ

0

Убедитесь, что пользователь, запускающий скрипт КОЛБУ имеют разрешение читать & писать на /tmp/test.db и, кажется, есть ненужный дополнительный в 'sqlite:////tmp/test.db' ,

Смежные вопросы