标签: peewee

使用 peewee 进行不区分大小写的排序

以下排序区分大小写:

MyModel.select().order_by(MyModel.name)
<class '__main__.MyModel'> SELECT t1."id", t1."name" FROM "mymodel" AS t1 ORDER BY t1."name" []
Run Code Online (Sandbox Code Playgroud)

如何添加 aNOCASE使其不区分大小写?

或者有没有其他方法可以让它不区分大小写?

我在文档上找不到任何关于它的信息

python sqlite peewee

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

Python peewee,根据经过的时间过滤查询

这是我的“请求”类/表:

class Request(BaseModel):
    TIME_STAMP = DateTimeField(default=datetime.datetime.now)
    MESSAGE_ID = IntegerField()
Run Code Online (Sandbox Code Playgroud)

对于 peewee,我想从表中选择过去 10 分钟内发生的所有“请求”。像这样的东西:

rs = Request.select().where(Request.TIME_STAMP-datetime.datetime.now<(10 minutes))
Run Code Online (Sandbox Code Playgroud)

但是,我不完全确定如何获取 TIME_STAMP 和当前时间(以分钟为单位)之间的差异。

编辑:我已经尝试过 Gerrat 的建议,但 Peewee 似乎哭了:

/usr/local/lib/python2.7/dist-packages/peewee.py:2356: Warning: Truncated incorrect DOUBLE value: '2014-07-19 15:51:24'
  cursor.execute(sql, params or ())
/usr/local/lib/python2.7/dist-packages/peewee.py:2356: Warning: Truncated incorrect DOUBLE value: '0 0:10:0'
  cursor.execute(sql, params or ())
Run Code Online (Sandbox Code Playgroud)

python peewee

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

将 SQL 子查询转换为 Peewee ORM

我有一个类似于Translate SQLite query, with subquery, into Peewee statementCan peewee nest SELECT 查询以便外部查询选择内部查询的聚合的问题?.

我试图生成的结果是:给定一个fruit包含 行的表格(type, variety, price),找到每种水果中最便宜的品种。http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/中描述了几种解决方案:

select f.type, f.variety, f.price
from (
   select type, min(price) as minprice
   from fruits group by type
) as x inner join fruits as f on f.type = x.type and f.price = x.minprice;
Run Code Online (Sandbox Code Playgroud)

或者:

select type, variety, price
from fruits
where price = (select min(price) from fruits as f where f.type = fruits.type);
Run Code Online (Sandbox Code Playgroud)

我如何才能 Peewee-ify …

python sql peewee

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

Peewee:通过多对多关系进行过滤

这是一个基本示例 - 帖子由用户拥有和喜欢。如何为特定用户选择喜欢的帖子?

import datetime
import peewee

class User(peewee.Model):
    name = peewee.CharField(max_length=200)

class Post(peewee.Model):
    user = peewee.ForeignKeyField(User)
    text = peewee.TextField()

class Like(peewee.Model):
    user = peewee.ForeignKeyField(User)
    post = peewee.ForeignKeyField(Post)
    time = peewee.DateTimeField(default=datetime.datetime.now)
Run Code Online (Sandbox Code Playgroud)

我从 Like 模型的角度进行查询,从Like.select()并连接Post模型开始查询。可以吗?我如何从Post模型的角度进行查询,即Post.select()...

为了方便起见,这里有一个完整的示例:

def check_likes():
    user, _ = User.get_or_create(name="John")
    post, _ = Post.get_or_create(text="Hello world!", user=user)
    like, _ = Like.get_or_create(post=post, user=user)

    print("Created: ", user, post, like)

    # Get liked posts for user
    query_likes = (Like.select()
        .where(Like.user == user)
        .join(User)
        .join(Post))
    liked_posts …
Run Code Online (Sandbox Code Playgroud)

python orm peewee

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

Peeweeexecute_sql 带有转义字符

我写了一个查询,其中有一些字符串替换。我正在尝试更新表中的 url,但该 url 中包含 % 符号,这会导致tuple index out of range exception.

如果我打印查询并手动运行,它工作正常,但通过 peewee 会导致问题。我该如何解决这个问题?我猜这是因为百分号?

query = """
    update table 
      set url = '%s'
     where id = 1
""" % 'www.example.com?colour=Black%26white'
db.execute_sql(query)
Run Code Online (Sandbox Code Playgroud)

python peewee

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

使用 peewee 增加 Flask 中的值

我一直在用 Flask 和 Peewee 制作一个应用程序,我正在尝试使用update()函数将数据库中的值加一。

这是问题所在:

models.User.update(
        likes+=1
        ).execute()
Run Code Online (Sandbox Code Playgroud)

这不起作用,我只是收到错误:

  File "app.py", line 171
   love+=1
     ^
  SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

python sqlite flask peewee

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

SQLAlchemy 中 peewee 的DoesNotExist 的等价物是什么?

我已经使用 peewee 和 SQLite 有一段时间了,现在我正在使用 Postgres 切换到 SQLAlchemy,但我找不到等效的 DoesNotExist(参见示例)

try:
    return models.User.get(models.User.id == userid)
except models.DoesNotExist:
    return None
Run Code Online (Sandbox Code Playgroud)

您知道如何使用 SQLAlchemy 实现相同的目标吗?我已经检查了可以从 sqlalchemy.ext 导入的东西,但似乎没有什么是正确的。

python postgresql flask-sqlalchemy peewee

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

限制peewee检索的行数

我有以下 python 源文件来从 MySQL 数据库中检索行。问题是在订户表中要检索的行太多。如何限制要检索和处理的小块行等?

class subinfo(peewee.Model):
    sub_id = peewee.IntegerField()
    active = peewee.BooleanField()
    sub_type = peewee.IntegerField()
    sub_cat = peewee.TextField()

    class Meta:
        database = locdb

class subscriber(peewee.Model):
    sub_id = peewee.IntegerField(unique=True, primary_key=True)
    sub_start = peewee.DateTimeField()
    sub_end = peewee.DateTimeField()
    ref_id = peewee.BigIntegerField()
    class Meta:
        database = locdb

for row in subscriber.select():
    if(row.sub_start >= peewee.datetime.datetime.now()):
        sub1, created = subinfo.get_or_create(sub_id=row.sub_id, active=True)
        if(created == False & sub1.active == False):
            q = subinfo.update(active=True).where(sub_id=row.sub_id)
            q.execute()
    else:
        subinfo.get_or_create(sub_id=row.sub_id, active=False)
Run Code Online (Sandbox Code Playgroud)

python mysql peewee

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

使用 peewee 返回列中的最大值

我有一个名为 jobs 的表,其中有一个名为 job_num 的列。我如何返回该列中整数的最大值?

我试过了

result = Job.select(max(Job.job_num))
Run Code Online (Sandbox Code Playgroud)

我还尝试了一些不同的组合,例如

result = Job.select(Job.job_num).max()
Run Code Online (Sandbox Code Playgroud)

我还检查了 peewee 文档。任何人都可以请帮忙。

python sqlite python-2.7 peewee

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

为什么在一个失败的命令后,使用 peewee ORM 和 posgresql 后,所有后续命令都会出现 peewee.InternalError 错误?

几个月来,我一直在广泛地使用 peewee 和 postgresql。突然这开始发生。如果我运行任何查询命令并收到错误,则所有后续命令都开始返回peewee.InternalError: current transaction is aborted, commands ignored until end of transaction block.

我认为这种行为是在我将 peewee 从 3.5.2 升级到 3.7.2 时开始的,但我已经降级并且这种行为仍在继续。这绝对不总是发生。

在最简单的情况下,我有一个只有一条记录的数据库表。我尝试创建一个具有相同 ID 的新记录,我得到了IntegrityError预期的结果。如果我然后尝试在该数据库上运行任何其他查询命令,则会得到InternalError上述结果。

这不会发生在 sqlite 数据库中。

我已经重新安装了 peewee 和 psycopg2,但无济于事。

我错过了什么?

python postgresql peewee

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

标签 统计

peewee ×10

python ×10

sqlite ×3

postgresql ×2

flask ×1

flask-sqlalchemy ×1

mysql ×1

orm ×1

python-2.7 ×1

sql ×1