标签: peewee

Peewee模型为JSON

我正在使用peewee作为ORM创建API,我需要能够将peewee模型对象转换为JSON对象以发送给用户.有谁知道这样做的好方法?

python json peewee

26
推荐指数
3
解决办法
2万
查看次数

使用peewee访问远程MySQL数据库

我正在尝试使用peewee连接到Amazon的RDS上的MySQL数据库,我无法让它工作.我是数据库的新手,所以我可能做了一些愚蠢的事情,但这就是我正在尝试的:

import peewee as pw

myDB = pw.MySQLDatabase(host="mydb.crhauek3cxfw.us-west-2.rds.amazonaws.com",port=3306,user="user",passwd="password",db="mydb")


class MySQLModel(Model):
    """A base model that will use our MySQL database"""
    class Meta:
        database = myDB

class User(MySQLModel):
    username = CharField()

myDB.connect()
Run Code Online (Sandbox Code Playgroud)

它挂在第二行,说 __init__() takes at least 2 arguments (1 given)

我错过了什么?为什么它说我只给它一个参数当我给它五个?

非常感谢,Alex

python amazon-rds peewee

20
推荐指数
1
解决办法
2万
查看次数

在MySQL中像TimeStamp这样的peewee中有DateTimeField的自动更新选项吗?

我希望每次修改记录时更新时间戳字段,就像在MySQL中一样.

DateTimeField(default=datetime.datetime.now()) 只会在第一次创建时设置它...

有没有简单的解决方案?唯一的解决方案是在MySQL db中手动设置Column选项吗?

mysql peewee

18
推荐指数
1
解决办法
4648
查看次数

用于在空字段上选择的Peewee语法

我到处研究过这个,似乎无法找到答案.我希望我没有重复这个(因为这是我关于SO的第一个问题).

我正在尝试用Peewee编写一个选择查询,通常会去... WHERE foo = NULL; 在SQL世界中.

MySQL看起来像这样:

+-----------+-------------+------+-----+---------+----------------+  
| Field     | Type        | Null | Key | Default | Extra          |  
+-----------+-------------+------+-----+---------+----------------+  
| id        | bigint(20)  | NO   | PRI | NULL    | auto_increment |  
| user      | varchar(30) | NO   |     | NULL    |                |  
| peer      | varchar(30) | NO   |     | NULL    |                |  
| deleted   | date        | YES  |     | NULL    |                |  
| confirmed | date        | YES  |     | NULL    |                | …
Run Code Online (Sandbox Code Playgroud)

python mysql null isnull peewee

15
推荐指数
1
解决办法
1万
查看次数

操作员不在Peewee

文档显示如何使用IN运算符,但我找不到如何使用NOT IN运算符.

如果我把一个not <<我得到一个语法错误.

如果我放了not <FieldName> <<一个WHERE False而不是一个子查询WHERE (<FieldName> NOT IN (SELECT ....

这是带有文档示例的输出.第一个是正确的,第二个和第三个是错误的.

>>> Tweet.select().where(Tweet.user << a_users).sql()
('SELECT t1."id", t1."user_id", t1."message", t1."created_date", t1."is_published" FROM "tweet" AS t1 WHERE (t1."user_id" IN (SELECT t2."id" FROM "user" AS t2 WHERE (Lower(Substr(t2."username", ?, ?)) = ?)))', [1, 1, 'a'])
>>> Tweet.select().where(not Tweet.user << a_users).sql()
('SELECT t1."id", t1."user_id", t1."message", t1."created_date", t1."is_published" FROM "tweet" AS t1 WHERE ?', [False])
>>> Tweet.select().where(Tweet.user …
Run Code Online (Sandbox Code Playgroud)

python sqlite peewee

14
推荐指数
1
解决办法
3939
查看次数

为什么peewee包含'id'列进入mysql select查询?

我正在尝试学习如何使用myse的peewee.

我在具有现有表的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
<class '__main__.schedule'> SELECT t1.`id`, t1.`date`, t1.`team` FROM `nhl` AS t1 []
>>> test.get()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  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", …
Run Code Online (Sandbox Code Playgroud)

python mysql select create-table peewee

12
推荐指数
2
解决办法
1万
查看次数

如何使用peewee查询获取列/字段?

对于模型

class User(db.Model, BaseUser):
    name = CharField()
    phone = CharField()
    age = IntegerField()
    points = IntegerField()
Run Code Online (Sandbox Code Playgroud)

和一个字段列表, lst = ['phone', 'name', 'points']

有没有办法让您的查询返回字段lst

我在文档中找不到一个例子,但似乎Django的ORM有类似的东西...get().values(lst).

我尝试将列表作为参数传递User.select(),但得到

TypeError: issubclass() arg 1 must be a class
Run Code Online (Sandbox Code Playgroud)

我想我可以做一些像[getattr(obj, field) for field in lst]生成的对象,但似乎应该有更好的方法?

更新:valuesDjango文档中的链接在这里.

python orm peewee

12
推荐指数
3
解决办法
1万
查看次数

Python Peewee execute_sql()示例

我使用Peewee模块作为我项目的ORM.

我阅读了整个文档,没有关于如何处理db.execute_sql()的结果的明确示例.

我跟踪了代码,只能找到db.execute_sql()返回光标.

有谁知道如何处理游标,例如迭代它并从复杂的select语句中获取结果.

更新:我刚从peewee文件夹中找到以下源代码,它应该可以帮我解决这个问题.

class QueryResultWrapper(object):
    """
    Provides an iterator over the results of a raw Query, additionally doing
    two things:
    - converts rows from the database into python representations
    - ensures that multiple iterations do not result in multiple queries
    """
    def __init__(self, model, cursor, meta=None):
        self.model = model
        self.cursor = cursor

        self.__ct = 0
        self.__idx = 0

        self._result_cache = []
        self._populated = False
        self._initialized = False

        if meta is not None:
            self.column_meta, self.join_meta = meta
        else:
            self.column_meta …

python sql database peewee

12
推荐指数
1
解决办法
1万
查看次数

如何在Python Peewee ORM中使用`WHERE value IN list`进行查询?

我正在使用(真棒)Python Peewee ORM作为我的Flask项目,但我现在卡住了尝试用a进行查询where value in ['a', 'b', 'c'].我尝试按如下方式进行:

MyModel.select().where(MyModel.sell_currency in ['BTC', 'LTC'])
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,它会返回数据库中的所有记录.我有什么想法可以做到这一点?

python orm flask peewee

12
推荐指数
2
解决办法
5792
查看次数

python peewee - 如何使用distinct

我试图让这个代码与peewee一起工作:

distinct_list = QSales.select(QSales.account, QSales.tax_code).distinct().where(QSales.trans_num == 3717)
print distinct_list
Run Code Online (Sandbox Code Playgroud)

但是打印命令结果是:

<class '__main__.QSales'> SELECT DISTINCT t1.`Account`, t1.`Tax_Code` FROM `q_sales` AS t1 WHERE (t1.`Trans_#` = %s) [3717]
Run Code Online (Sandbox Code Playgroud)

在MySQL编辑器中运行上面的select语句(将打印结果复制到编辑器)返回正确的结果.

我也尝试过:

distinct_list = QSales.select(fn.Distinct(QSales.account, QSales.tax_code)).where(QSales.trans_num == 3717)
Run Code Online (Sandbox Code Playgroud)

但得到了相同的结果

我究竟做错了什么?

谢谢.

python-2.7 peewee

11
推荐指数
1
解决办法
6674
查看次数

标签 统计

peewee ×10

python ×8

mysql ×3

orm ×2

amazon-rds ×1

create-table ×1

database ×1

flask ×1

isnull ×1

json ×1

null ×1

python-2.7 ×1

select ×1

sql ×1

sqlite ×1