python - Web2py MySQL数据库引用错误

标签 python mysql web2py data-access-layer

我正在将 web2py 与 MySQL 数据库一起使用。我的 db.py 文件中的数据库方案如下所示:

db.define_table('app',
                 Field('name'),
                 Field('appdomain')
               )

db.define_table('role_group',
                 Field('appid', db.app),
                 Field('name')
               )

db.define_table('user',
                Field('userid', required=True),
                Field('name', required=True),
                primarykey=['userid'])

db.define_table('role',
                 Field('appid', db.app),
                 Field('role_group', db.role_group),
                 Field('name')
               )

db.define_table('role_authorization',
                 Field('userid', db.user, required=True),
                 Field('roleid', db.role, required=True),
                 primarykey=['userid', 'roleid']
               )

db.define_table('group_authorization',
                 Field('userid', db.user),
                 Field('groupid', db.role_group),
                 primarykey=['userid', 'groupid']
               )

当我运行以下查询时:

userid = "fb|1234"
userAuthorizations = db((db.user.userid == userid)
                                & (db.tetra_user.userid == db.role_authorization.userid)
                                & (db.role_authorization.roleid == db.role.id)
                                & (db.role.appid == db.app.id)
                            ).select()

它返回此错误:ValueError:以 10 为基数的 long() 的文字无效:'fb|1234'。 我希望有人知道导致此错误的原因并可以帮助我解决它。

亲切的问候, 西蒙

最佳答案

首先,您需要在旧表中将 migrate 设置为 False。所以 web2py 不会有意改变它们。

其次,尝试指定字段userid的类型,因为当您尝试将“fb|1234”转换为整数时会发生此类错误:

>>> int("fb|1234") 
ValueError: invalid literal for int() with base 10: 'fb|1234'

关于python - Web2py MySQL数据库引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376401/

相关文章:

python - 了解 openpyxl 模块中 Worksheet 的追加方法如何工作

python - 运行后在解释器中访问脚本的变量和函数

php - Codeigniter 将数据插入数据库

django - 是否可以将自定义方法添加到 Web2Py 的内置 "models"中?

python - 我无法在 ubuntu 中创建仅设置为 python3 的虚拟环境

python - 要求已经满足 : mysql-python in/usr/local/lib/python2. 7/site-packages

mysql - SQL IF - ELSE 语句

mysql - Kohana 执行将 null 分配给参数 var

python - 向 web2py 表单添加额外的验证要求?

web2py-python