标签: peewee

Python:基于nosetest是否正在运行的条件变量

我正在运行nosetests,它具有需要加载与生产数据库不同的数据库的设置功能.我正在使用的ORM是peewee,它要求在定义中设置模型的数据库.

所以我需要设置一个条件变量,但我不知道使用什么条件来检查nosetest是否正在运行该文件.

我对堆栈溢出阅读,你可以检查nosesys.modules,但我不知道是否有检查鼻涕更精确的方式.

python nose peewee

8
推荐指数
1
解决办法
1536
查看次数

使用peewee在具有不同名称的字段上联合

我正在使用peewee作为ORM并且有两个这样的类:

class A(Model):
    name = CharField()
    body = TextField()

class B(Model):
    title = CharField()
    body = TextField()
Run Code Online (Sandbox Code Playgroud)

我想从获取的所有条目AB它的title/ name有像一些字符开头'abc'.根据文档,|操作员应该提供帮助,但我甚至无法执行结果Expression.很显然,我想有一个UNIONAS表达幕后.我怎么通过peewee得到这个?

python sql orm peewee

8
推荐指数
1
解决办法
273
查看次数

如何在Peewee中动态设置SQLite数据库文件?

我正在使用Peewee进行我正在进行的项目,我正在试图弄清楚如何动态设置数据库,以便我可以使用一个用于生产,一个用于测试.我见过的所有例子在任何类之外都有以下行:

database = SqliteDatabase(DATABASE)
Run Code Online (Sandbox Code Playgroud)

我觉得很奇怪,因为我认为你会希望它在一个类中,所以你可以传入不同的数据库路径.有关为prod和另一个数据库选择一个数据库进行测试的建议吗?

谢谢!

peewee

8
推荐指数
2
解决办法
1460
查看次数

Peewee中的字符串匹配(SQL)

我试图在Peewee中查询应该具有特定子字符串的结果.

例如,如果我只想在名称中包含"Physics"的活动:

schedule = Session.select().join(Activity).where(Activity.name % "%Physics%").join(Course).join(StuCouRel).join(Student).where(Student.id == current_user.id)
Run Code Online (Sandbox Code Playgroud)

上面的示例没有给出任何错误,但无法正常工作.

在python中,我会这样做if "Physics" in Activity.name,所以我正在寻找一个可以在查询中使用的等价物.

sql peewee

7
推荐指数
2
解决办法
6851
查看次数

使用peewee检查查询是否存在

我在Python中使用Peewee库,我想检查是否存在查询.我不想创建一个记录,如果它不存在,所以我不想使用get_or_create.必须有一个更好的解决方案,而不是使用try/except with get但我没有看到任何东西.如果有更好的方法,请告诉我.谢谢.

python peewee

7
推荐指数
2
解决办法
9557
查看次数

在python中插入或更新peewee记录

是否有一种简单的单行方式peewee在Python中使用,如果主键不存在则插入记录,或者如果记录已经存在则更新记录.

目前我正在使用代码:

try:
    sql_database.create(record_key = record_key, record_data_2 = record_data_2)
except IntegrityError:  ## Occurs if primary_key already exists
    sql_database.update(record_key = record_key, record_data_2 = record_data_2)
Run Code Online (Sandbox Code Playgroud)

我看不到"创建或更新"命令,但也许我错过了一些东西.

python peewee

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

peewee和peewee-async:为什么异步更慢

我试图绕过Tornado和异步连接到Postgresql.我找到了一个可以在http://peewee-async.readthedocs.io/en/latest/上执行此操作的库.

我设计了一个小测试来比较传统的Peewee和Peewee-async,但不知何故异步工作得更慢.

这是我的应用:

import peewee
import tornado.web
import logging
import asyncio
import peewee_async
import tornado.gen
import tornado.httpclient
from tornado.platform.asyncio import AsyncIOMainLoop

AsyncIOMainLoop().install()
app = tornado.web.Application(debug=True)
app.listen(port=8888)

# ===========
# Defining Async model
async_db = peewee_async.PooledPostgresqlDatabase(
    'reminderbot',
    user='reminderbot',
    password='reminderbot',
    host='localhost'
)
app.objects = peewee_async.Manager(async_db)
class AsyncHuman(peewee.Model):
    first_name = peewee.CharField()
    messenger_id = peewee.CharField()
    class Meta:
        database = async_db
        db_table = 'chats_human'


# ==========
# Defining Sync model
sync_db = peewee.PostgresqlDatabase(
    'reminderbot',
    user='reminderbot',
    password='reminderbot',
    host='localhost'
)
class SyncHuman(peewee.Model):
    first_name = peewee.CharField() …
Run Code Online (Sandbox Code Playgroud)

python postgresql tornado peewee python-asyncio

7
推荐指数
1
解决办法
2725
查看次数

获取Peewee中对象集的最新相关对象

假设我有一个对象模型A,它与Peewee中的B有一对多的关系,使用sqlite后端.我想获取一些A并使用最新的B加入每个.他们是否可以在没有循环的情况下执行此操作?

class A(Model):
    some_field = CharField()
class B(Model):
    a = ForeignKeyField(A)
    date = DateTimeField(default=datetime.datetime.now)
Run Code Online (Sandbox Code Playgroud)

天真的方式是调用order_by和limit(1),但这将适用于整个查询,所以

q = A.select().join(B).order_by(B.date.desc()).limit(1)
Run Code Online (Sandbox Code Playgroud)

自然会产生单身人士的结果

q = B.select().order_by(B.date.desc()).limit(1).join(A)
Run Code Online (Sandbox Code Playgroud)

我要么使用prefetch错误,要么它不适用于此,因为

q1 = A.select()
q2 = B.select().order_by(B.date.desc()).limit(1)
q3 = prefetch(q1,q2)
len(q3[0].a_set)
len(q3[0].a_set_prefetch)
Run Code Online (Sandbox Code Playgroud)

根据需要,这些集合都不具有长度1.有谁知道如何做到这一点?

python sqlite peewee

7
推荐指数
1
解决办法
444
查看次数

有没有办法在 peewee 中 query.all() ?

我需要将所有数据从 SQL 表传输到 html 页面。在 SQLAlchemy 中我会做这样的事情:

class Author(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    first = db.Column(db.String(80))
    last = db.Column(db.String(80))


@app.route('/authors')
def get_authors():
    authors = Author.query.all()
    # Serialize the queryset
    result = authors_schema.dump(authors)
    return jsonify({'authors': result.data})
Run Code Online (Sandbox Code Playgroud)

有没有类似authors = Author.query.all()peewee的东西?

python orm sqlalchemy peewee

7
推荐指数
2
解决办法
9483
查看次数

如何在peewee中自定义表名?

我想定义一个表名是gobang_server的表,我写的代码如下:

class BaseModel(Model):
    class Meta:
        database = database

class GobangServer(BaseModel):
    time = DateField(default=datetime.datetime.now())
    name = CharField(max_length=64)
    host = CharField(max_length=30)
    port = IntegerField()
    pid = IntegerField()
Run Code Online (Sandbox Code Playgroud)

但我看 PostgreSQL 的表名是“gobangserver”?
我如何定义表名是 gobang_server 并且类名不被修改。

postgresql peewee

7
推荐指数
1
解决办法
2420
查看次数

标签 统计

peewee ×10

python ×7

orm ×2

postgresql ×2

sql ×2

nose ×1

python-asyncio ×1

sqlalchemy ×1

sqlite ×1

tornado ×1