python - MySQL 和 web2py

标签 python mysql web web2py

我刚刚开始使用 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/

相关文章:

python - 在python列表中找到最小的数字并打印位置

python - 如何在 Windows 10 上使用 Cx_Freeze 制作 exe,包括 PyQt5 和 OpenCV

Python,在使用Popen时更改当前的shell环境变量?

mysql - 如何在 cakephp 条件下查找所有大于和小于等于值的查询

MySQL 选择 "accumulated"列

MySql:如何通过两列之一加入

python - 如何在 python 中更改字典中的列表值?

php - 管理 1000+ 用户,每个用户在 mysql 中存储数据超过 20,000 行

javascript - 为什么 AngularJS Controller 无法在我的电脑上运行?

html - 移动按钮标签中的元素