mysql - Web2Py MySQL 数据检索

标签 mysql web2py

这里是 web2py 和 python 新手。

我尝试使用 MySQL DB 作为后端数据库来制作一个示例 Web 应用程序。我在 MySQL 中单独创建了一个表并填充了值,我想在 UI 中显示表值。我有一个错误 -

“类'gluon.contrib.pymysql.err.InternalError'>(1050,u“表''已经存在”)”

我的配置文件如下:

db.py

if not request.env.web2py_runtime_gae:
    db = DAL('mysql://xxxxx',pool_size=1,check_reserved=['all'])
else:

    session.connect(request, response, db=db)

response.generic_patterns = ['*'] if request.is_local else []


from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
auth = Auth(db)
crud, service, plugins = Crud(db), Service(), PluginManager()

## create all tables needed by auth if not custom tables
auth.define_tables(username=False, signature=False)


## after defining tables, uncomment below to enable auditing
# auth.enable_record_versioning(db)
db.define_table('user_details',
   Field('user_id', 'text'),
    Field('first_name', 'text'),
    Field('last_name', 'text'),
    Field('city', 'text'),
    Field('user_st', 'text'),migrate=True)

我的主页是这样的

{{ rows = db(db.user_details).select() }}
{{if len(rows):}}
<ul>
{{ for r in rows: }}
  <li>

        {{=r.name}}

  </li>
{{pass}}
</ul>
{{pass}}

我不确定我错过了什么。感谢任何帮助,谢谢。

<小时/>

我现在明白了。只需更改 migrate=False 即可。谢谢。

最佳答案

您有 migrate=True,并且 web2py 没有任何已创建该表的记录,因此它正在尝试再次创建该表。您可以通过临时设置 fake_migrate=True(或者设置 migrate=False 并且不让 web2py 处理迁移)来让 web2py 更新其有关表的记录。

另外,请注意,默认情况下,web2py 期望每个表都包含一个名为“id”的自动递增整数字段,因此您应该确保您的表包含这样的字段。更好的是,如果该表无论如何都是新的,请不要在 MySQL 中手动创建它。相反,只需让 web2py 创建它(它将在第一次运行表定义时执行此操作)。一旦 web2py 创建了它,您就可以添加您喜欢的任何记录。

关于mysql - Web2Py MySQL 数据检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456523/

相关文章:

java - MySQL连接和hibernate c3p0设置,8小时后超时?

mysql - SQL 查找多个值

php - 在 web2py 中保留文件上传 html 表单

python - web2py中输入时间

php - 自动建议机场 - 如何在多个列中订购 "best match first"?

mysql - 表更新和 Primefaces ScheduleEvent

python - 在基于 python 的 Web 框架中扫描用户上传的文件中的恶意软件

docker - 创建一个 web2py docker 镜像并通过浏览器访问它

python - Web2py - 如何创建弹出窗口?

MYSQL无法创建表 : Error 150