【发布时间】:2014-09-03 11:36:41
【问题描述】:
我正在使用带有 SQLite 后端的 Bottle Cork 进行身份验证,并且正在尝试创建用户:
@bottle.post('/ajax/users/create/')
def create_user():
response.content_type = 'application/json'
password = bottle.request.forms.get('password')
username = bottle.request.forms.get('username')
role = bottle.request.forms.get('role')
ret = create_user_by_admin(username, password, role)
response.content_type = 'application/json'
return dumps({"status": ret.get('ok')})
def create_user_by_admin(username, password, role):
try:
auth.create_user(username, role, password)
return dict(ok=True, msg='')
except Exception, e:
return dict(ok=False, msg=e.message)
瓶应用日志:
127.0.0.1 - - [13/Jul/2014 13:56:38] "POST /ajax/users/create/ HTTP/1.1" 200 16
jQuery 发布响应:{"status": true}
如果我是第一次创建用户,则响应为 True(用户成功创建),但数据库中没有新用户。下一个响应将返回 False 和错误消息:
127.0.0.1 - - [13/Jul/2014 13:56:38] "POST /ajax/users/create/ HTTP/1.1" 200 16
/home/art/projects/leggera/app/views.py:33: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
return dict(ok=False, msg=e.message)
也就是说,创建了一个用户,但是...数据库中仍然没有新用户(我正在使用 SQLiteMan 查看数据库的内容)!
数据库未锁定,chmod +rwx... 请问这个问题怎么解决?
【问题讨论】:
-
看看backend source code 我会说这些更改永远不会提交。任何地方都没有自动提交配置,也没有显式提交。这是一个已经存在一年多的软件包中的一个令人惊讶的错误。