mysql查询依赖的ID_为什么包含'id'列的peewee放入mysql select查询中?

我有一个现有的数据库与现有表的MySQL服务器。该表目前是空的(我现在只是测试)。

>>> db = MySQLDatabase('nhl', user='root', passwd='blahblah')

>>> db.connect()

>>> class schedule(Model):

... date = DateField()

... team = CharField()

... class Meta:

... database = db

>>> test = schedule.select()

>>> test

SELECT t1.`id`, t1.`date`, t1.`team` FROM `nhl` AS t1 []

>>> test.get()

我得到以下错误:

Traceback (most recent call last):

File "", line 1, in

File "/usr/lib/python2.6/site-packages/peewee.py", line 1408, in get

return clone.execute().next()

File "/usr/lib/python2.6/site-packages/peewee.py", line 1437, in execute

self._qr = QueryResultWrapper(self.model_class, self._execute(), query_meta)

File "/usr/lib/python2.6/site-packages/peewee.py", line 1232, in _execute

return self.database.execute_sql(sql, params, self.require_commit)

File "/usr/lib/python2.6/site-packages/peewee.py", line 1602, in execute_sql

res = cursor.execute(sql, params or())

File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 201, in execute

self.errorhandler(self, exc, value)

File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler

raise errorclass, errorvalue

_mysql_exceptions.OperationalError: (1054, "Unknown column 't1.id' in 'field list'")

为什么peewee添加 'ID' 列到选择查询?数据库中已存在的表中没有id列。我只想使用现有的表格,而不是依赖于每次我想与数据库进行交互的peewee都要创建一个。这是我相信错误的地方。

查询的结果应该是空的,因为表是空的,但由于我正在学习,我只是想尝试一下代码。我感谢您的帮助。

编辑

基于由Wooble和弗朗西斯很有帮助的回答,我来想知道是否甚至是有道理的,我使用peewee或其他类似ORM SQLAlchemy的。使用ORM而不是仅使用MySQLdb在python中运行直接查询有什么好处?

这是我希望做:

从各种web服务器 - 自动下载数据。大部分数据都是xls或csv格式。我可以使用xlrd软件包将xls转换为csv。

- 在插入/批量插入到mysql数据库表之前解析/处理列表对象中的数据。

- 运行复杂的查询将数据从mysql导出到python中导入适当的数据结构化(列举例如)各种统计计算,在python而不是mysql中更容易完成。任何可以在mysql中完成的事情都将在那里完成,但我可能会在python中运行复杂的回归。

- 对从查询中检索到的数据运行各种图形包。其中一些可能包括使用ggplot2软件包(来自R-project),这是一个高级图形软件包。所以我会涉及一些R/Python集成。

鉴于上述情况,我最好花费几个小时学习ORM/Peewee/SQLAlchemy或坚持使用MySQLdb直接进行mysql查询?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值