我刚刚开始使用 web2py 和 python 进行开发。 在 web2py 文档中,我按照说明连接到 MySQL 数据库。
db = DAL('mysql://user:passs@host/test_base')
例如: 在 MySQL 上我有一个名为“users”的表 如果我定义表 db.define_table('users'...) 我收到此错误:
class 'gluon.contrib.pymysql.err.Error'>
(<type 'exceptions.UnicodeDecodeError'>,
UnicodeDecodeError('utf8', "Tabela 'users already exist", 19, 20,
'invalid continuation byte'))
如果我不定义表格,我会得到这个:
"<type 'exceptions.AttributeError'> 'DAL' object has no attribute 'users'"
我的问题是:如何访问远程数据库中的表和数据?
最佳答案
如果我理解正确,那么您有一个名为“用户”的预先存在的表。如果是这种情况,那么您将遇到这样一个事实:默认情况下,web2py 期望为您处理数据库(定义关系、属性等)。
如果您知道数据库的布局,一个修复方法是首先在 web2py 中定义模型以完全匹配表中的内容;运行一次生成sql.log;修改你的模型;再次运行。
另一种方法是关闭迁移,以便它不会尝试修改数据库结构。这意味着您失去了非常有用的自动迁移功能,并且必须自己执行 ALTER 语句。
无论您选择哪一个,我都强烈建议您首先快速阅读 web2py 手册第 6 章的“迁移”部分:http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Migrations
希望有帮助
关于python - MySQL 和 web2py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806828/