问题标签 [flask-peewee]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
337 浏览

python - 如何使用peewee ORM查找mysql表中存在的用户?

我在mysql中有这张表,

当我为现有用户尝试以下代码时:

它返回<User: zhaochang>

但是对于不存在的随机电子邮件/用户,User.get(email="some_random@email.com")它会引发错误:

用户不存在:Instance matching query does not exist:

SQL: SELECT 't1'.'id', 't1'.'email', 't1'.'username' FROM 'user' AS t1 WHERE ('t1'.'email' = %s) PARAMS: [u'some_random@email.com']

我期待 User.get 方法返回无。

0 投票
1 回答
20 浏览

inner-join - 如何从引用的表中具有匹配 id 的表中选择表的列项

我有两张桌子:

第二个表是相对的;

我想使用 peewee 方法获取患者 id 与亲属 id 匹配的相对名称列表

我试图创建一个这样的连接:

但给出错误说:

我想通了:

但它返回所有 relativeNames 而不是具有匹配 id 的那些。

0 投票
1 回答
368 浏览

python - 使用 peewee 构建 FIQL 查询

我正在尝试创建一个函数,该函数将采用FIQL格式的字符串并返回一个peewee表达式。

假设我有 FIQL 格式的 url 参数,如下所示:

使用FIQL 解析器我可以取回这个对象:

我想做的是创建一个接受上述对象的函数,并创建一个 peewee 可以理解的表达式。我习惯了django & Q objects,我可以像这样将表达式链接在一起:

我试过用 peewee 的查询生成器/节点来模仿这个,如下所示:

但我得到一个 NotImplementedError:

是否可以构建这样的功能?否则,还有哪些其他工具/插件可用于解决此问题?

0 投票
0 回答
1447 浏览

python-3.x - Flask 无法读取 ElasticBeanstalk 上的授权标头

编辑:进一步阅读两种解决方案。

我已将Flask应用程序部署到 AWS ElasticBeanstalk。该应用程序无法读取请求中的“授权”标头。

错误日志报告:

错误追溯到:

申请目录:

环境配置将WSGIPath设置为application.py

环境运行 Python 3.6 和以下组件:

还需要什么吗?

尝试(不成功)的解决方案:

我为此花费了很多时间,并尝试配置WSGIPassAuthorization,(根据此处和其他地方的建议)但是,我没有成功。

包含解决方法的应用程序目录:

当我尝试创建包含.ebextensions/wsgi_custom.config的 eb 环境时,EB CLI 报告错误,指出 YAML 无效:

.ebextensions/wsgi_custom.config的内容:

我的 YAML 验证工具报告有效的 YAML。

注意:根据AWS YAML建议,编辑器设置为使用空格。

编辑:解决方案 1

解决了上述示例中的 YAML 验证错误。我相信验证错误是一个红鲱鱼。脚本中提到的 .conf 文件现在具有有效名称。

.ebextensions/wsgi_custom.config 的内容:

编辑:使用container_commands 的解决方案 2

使用container_commands在 ElasticBeanstalk 上设置WSGIPassAuthorization

步骤 1. 创建.ebextensions/wsgi_custom.config

wsgi_custom.config

步骤 2.重启EB 环境。

Flask 应用程序现在可以读取请求中的“授权”标头。

万岁:)

如果有人能指出我关于WSGI的清晰讨论,我将不胜感激。

0 投票
1 回答
2323 浏览

python - Python Flask-Restful 错误:API 中的删除方法正在删除所有数据库条目

我编写了一个烧瓶-restful API,以及一个带有peewee 的SQLite 数据库。我能够“获取”我存储数据的艺术作品列表。我还能够毫无问题地“获取”单件、“发布”和“放置”。但是,如果我想删除单个片段,我的 API 将删除所有片段条目。现在我只是在使用邮递员测试我的 API,所以我知道这不是 AJAX 或 javascript 错误(我稍后会写)。任何指导都可能会有所帮助。

我试图增加发出删除请求所需的查询数量,其中我的数据库中的 created_by 字段(它是一个整数 id)必须与用户身份验证的 id 匹配。我创建了两个用户并分别发布了两个不同的片段,并且对片段运行删除请求仍然删除了所有片段。

如果我有 id 为 1、2 和 3 的片段,那么在 url.com/api/v1/pieces/1 上运行有效的删除请求,应该只删除 id 为 1 的片段。

0 投票
1 回答
287 浏览

python - 如何禁用peewee的自动连接?

考虑以下代码

这将在后台自动执行SQL_CONN.connect()

如何禁用此功能 -peewee如果数据库未连接,则强制抛出异常 - 而不是在不通知我的情况下自动连接到它。

0 投票
1 回答
48 浏览

python - 将字符串保存到 MySQL 数据库后添加不需要的字符

我需要在 peewee 的帮助下更新我的 MySQL 数据库中的现有条目,并且遇到了一个非常奇怪的问题。

当我将数字保存为字符串时,保存后会添加一些新字符。

例如,当我运行以下代码时:

我在我的 PhpMyAdmin 中得到以下字符串:

因此 的值myval(10,)在保存后而不是10.

老实说,我不知道是什么导致了这个问题,因为我已经多次完成相同的保存任务并且总是像魅力一样工作。我什至尝试将变量作为 an 传递,int但得到了相同的结果。

更新

在 save 之后obj,调用以下方法可以解决问题,但是这种解决方法有点矫枉过正,不是最优雅的解决方案:

0 投票
1 回答
295 浏览

python - 不能用 Peewee 随机排序查询结果

我正在将 MySQL 与 Peewee 一起使用。一切都运行良好,但现在我无法按随机顺序排列我的查询。

根据文档,我尝试了以下代码:

调用查询后,出现以下错误:

builtins.NameError

NameError:名称“fn”未定义

所以我想问一下对Peewee更熟悉的人,这fn是我需要以某种方式导入或实现的东西吗?我已经尝试过了order_by(tablename.Rand()).limit(5),但它并没有解决问题。

我想我在某个地方犯了一个初学者的错误,但我无法弄清楚。

0 投票
1 回答
56 浏览

database - 删除 id 但保留 Peewee db 中的数据

我是使用 Flask 和 Peewee 工具的新手。但是目前我有以下任务:假设有人上传了一个数据集(在本例中是一个将迁移到 pandas df 的 excel 文件)。该数据集将被处理,然后使用 peewee 和 Flask 存储在数据库中。一个 id 将与他的数据匹配。但是再想象一下,上传文件的用户想要删除它,所以每当他再次尝试访问它时,它都会显示该文件不再存在。然而我们想要的是文件仍然存储在数据库中,但是属于那个人的 id 会从文件中分离出来。此外,如果此人尝试上传 file_2,我们不希望 db 返回 file_1。你对我该如何解决这个问题有什么建议吗?我是使用这个框架的新手,任何帮助/见解将不胜感激

0 投票
1 回答
250 浏览

python - 有没有办法通过 mixin 设置 peewee 字段?

我正在尝试设置一组可重用的数据模型,我可以将其包含在多个应用程序中,如下所示(我在这里使用用户作为示例,但实际的是Authlib库的 peewee 后端):

一旦创建了 mixin,我应该能够像这样导入它,只定义附加字段(默认值已经从 mixin 中获得)

我见过人们用SQLAlchemy, 但是当我用 peewee 使用这个策略时,它似乎没有正确保存字段:

  • 如果UserMixin继承自peewee.Model,则表示“无法解析导入层次结构”(可能是因为我们peewee.Model多次导入)
  • 如果UserMixin只是一个object,那么 peewee 似乎没有正确处理它的字段:它们最终都作为未绑定的实例并且没有保存在数据库中。

我的问题:是否有一种“官方方式”来创建可重用的模型 mixinpeewee 中的字段?

我见过其他项目(例如flask-login)使用 mixins,但这些通常set_password是本示例中的附加功能,而不是定义字段本身的功能。


我有一些潜在的替代解决方案,比如

  • 在共享文件中定义模型本身,而不是 mixins,并.Meta.database为每个models.py条目分别覆盖它们
  • 只定义mixin中的其他函数;让字段每次都单独定义models.py
  • 使用共享代码作为文件来复制粘贴,而不是import直接 ing。

但是可能有一些更清洁的方法可以做到这一点?