【问题标题】:Issues with db in pyramid + Sqlalchemy金字塔 + Sqlalchemy 中的 db 问题
【发布时间】:2015-09-21 09:34:54
【问题描述】:

我正在金字塔中创建一个简单的应用程序。插入数据时出现数据库锁定错误。

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) 数据库被锁定 [SQL: 'INSERT INTO users (name, email, number) VALUES (?, ?, ?)'] [参数: ('test', ' t@t.com', '123654')]

但第一次正确插入数据,第二次出现此错误。

知道为什么会第二次发生这种情况吗?

这是我的代码:

name = request.params['name']
email = request.params['email']
no = request.params['number']
DBSession.add(User(name, email, no))

# Get the new ID and redirect
users = DBSession.query(User).all()

【问题讨论】:

    标签: python sqlalchemy pyramid pylons


    【解决方案1】:

    SQLite 只能处理 1 个并发事务。

    在执行query() 然后close() 结束会话之前,您是否尝试过commit()

    name = request.params['name']
    email = request.params['email']
    no = request.params['number']
    DBSession.add(User(name, email, no))
    
    # Commit the transaction if complete
    DBSession.commit()
    
    # Get the new ID and redirect
    users = DBSession.query(User).all()
    
    # Close the session
    DBSession.close()
    

    【讨论】:

    • 一次编辑,将是 transaction.commit() 而不是 DBSession.commit() 。还要先import transaction
    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2013-07-14
    • 2012-11-22
    相关资源
    最近更新 更多