问题标签 [flask-sqlalchemy]

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 投票
2 回答
2299 浏览

python - 如何将 Postgres 的 Hstore 列与 flask-sqlalchemy 一起使用?

我正在尝试实现此代码https://gist.github.com/1859653,它允许 sqlalchemy 与 hstore 列进行交互。

它在该要点的评论中提到需要运行 psycopg2.extras.register_hstore。该函数应该在何时以及何时运行?如果我做:

“连接太多”的heroku错误

还提到使用 pghstore (http://pypi.python.org/pypi/pghstore) 而不是 psycopg2,但它没有说明如何设置它。

另外,我想知道这个附加代码是否支持使用 hstore 索引。

0 投票
2 回答
2109 浏览

python - 如何正确测试基于 SQLAlchemy 声明式的 Python Flask 系统

我有一个项目我已经做了一段时间了,它是用 Flask 编写的,并使用带有声明性扩展的 SQLAlchemy http://flask.pocoo.org/docs/patterns/sqlalchemy/。我最近决定开始对我的项目进行单元测试,但是对于我的生活,我似乎无法弄清楚如何让它工作。

我查看了http://flask.pocoo.org/docs/testing/,但我似乎无法让它工作。

我尝试了来自不同网站的各种东西,但找不到可以正常工作的东西。

不幸的是,我似乎能得到的最好结果会导致以下错误。

对此的任何帮助将不胜感激。如果有人以前经历过这种情况并使它起作用,我想要一些指示!提前致谢。

0 投票
1 回答
2192 浏览

sqlalchemy - SQLAlchemy if/not 查询会话已附加

我从一个网站获取数据,该网站发布高中足球的分数并将其放入 Flask 项目中。我正在使用 Flask-SQLAlchemy 并尝试检查游戏是否已经存在;如果不是,我在数据库中创建一个新游戏,如果它确实存在,我只想更新分数(以防自上次导入以来对分数进行任何更正。这是我的代码:

当我运行代码时,它给了我这个错误:

sqlalchemy.exc.InvalidRequestError:对象“”已附加到会话“1”(这是“2”)

这样做的正确方法是什么?

0 投票
1 回答
4259 浏览

python - 如何获取受 SQL Alchemy 影响的行数?

如何使用 sqlalchemy 获取更新语句受影响的行数?(我正在使用 mysql 和 python/金字塔):

注意:我看到了这篇文章,但根据文档:“'rowcount' 报告了与 UPDATE 或 DELETE 语句的 WHERE 标准匹配的行数。”....换句话说,它不返回数字更新或删除语句影响的行数。

0 投票
2 回答
7582 浏览

python - SQLAlchemy 子类/继承关系

我对如何在 SQLAlchemy 中设置 id 和与子类的关系感到困惑(我碰巧使用的是 Flask-SQLAlchemy)。我的总体设计是让超类 Pin 成为具有地理位置的任何事物(即用户、地点等)的高级表示。

Pin 和 Geolocation 对象之间存在一对一的关系,因此 Geolocation 不会同时包含两个用户(或用户和地点)的位置。现在我想继承 Pin 来创建 User 类。用户对象应该有一个名称、密码哈希、盐,我还希望能够通过userObj.geolocation. 但是,我后来想创建一个类 Place ,它也是 Pin 的子类,我应该能够通过placeObj.geolocation. 给定一个地理位置对象,我应该可以使用geolocationObj.pin查找用户/地点/等。对应的地理位置对象。我引入超类 Pin 的全部原因是确保 Pin 和 Geolocation 对象之间存在纯粹的一对一关系,而不是让 Geolocation 与需要 Geolocation 表具有user_idplace_id列的 User 或 Person 相关联,其中之一将始终为空。

我希望每个用户都能.geolocation通过父 Pin 类自动拥有一个属性,该属性引用 Geolocation 但似乎 SQLAlchemy 没有这样做。我怎样才能使子类关系起作用以实现我的目标,即让 User 和 Place 以及可能的其他类子类 Pin,让这些类中的每一个都具有通过 Pin 的地理位置属性,并且在 Pin 和地理位置之间具有一对一的关系?

0 投票
2 回答
6360 浏览

python - SQL Alchemy NULL 标识键

我已经像这样定义了表的模型的 id 字段:

并相应地更改了数据库(MySQL)表,但是当我创建模型并尝试提交它时(我使用 SQLalchemy 0.7.8)

我收到这个错误

0 投票
3 回答
31680 浏览

python - 在蓝图模型中使用 Flask-SQLAlchemy,无需参考应用

我正在尝试使用蓝图在 Flask 中创建一个“模块化应用程序”。

但是,在创建模型时,我遇到了必须引用应用程序才能获得dbFlask-SQLAlchemy 提供的 -object 的问题。我希望能够将一些蓝图与多个应用程序一起使用(类似于 Django 应用程序的使用方式),所以这不是一个好的解决方案。*

  • 可以进行切换,让蓝图创建db实例,然后应用程序将其与蓝图的其余部分一起导入。但是,任何其他希望创建模型的蓝图都需要从蓝图而不是应用程序导入。

我的问题是:

  • 有没有一种方法可以让蓝图定义模型,而无需了解它们以后使用的应用程序——并且将多个蓝图组合在一起?我的意思是必须从您的蓝图中导入应用程序模块/包。
  • 我一开始就错了吗?蓝图不是独立于应用程序并且是可再分发的(à la Django 应用程序)吗?
    • 如果不是,那么您应该使用什么模式来创建类似的东西?烧瓶扩展?您是否应该干脆不这样做 - 并且可能集中所有模型/模式 à la Ruby on Rails?

编辑:我自己现在一直在考虑这个问题,这可能与 SQLAlchemy 比 Flask 更相关,因为你必须declarative_base()在声明模型时。无论如何,这一定来自某个地方!

也许最好的解决方案是将项目的模式定义在一个地方并将其分散开,就像 Ruby on Rails 那样。声明式 SQLAlchemy 类定义实际上更像 schema.rb,而不是 Django 的 models.py。我想这也会使迁移(来自alembicsqlalchemy-migrate )更容易使用。


我被要求提供一个示例,所以让我们做一些简单的事情:假设我有一个描述“平面页面”的蓝图——存储在数据库中的简单、“静态”内容。它使用一个只有短名称(用于 URL)、标题和正文的表格。这是simple_pages/__init__.py

然后,最好让这个蓝图定义它自己的模型(this in simple_page/models.py):


这个问题与:

和其他各种,但所有回复似乎都依赖于导入应用程序的db实例,或者做相反的事情。“ Large app how to” wiki 页面也使用了“import your app in your blueprint”模式。

* 由于官方文档显示了如何在蓝图中创建路线、视图、模板和资产,而不关心它“在”什么应用程序,我假设蓝图通常应该可以跨应用程序重用。然而,如果没有独立的模型,这种模块化似乎并没有那么有用

既然蓝图可以多次挂接到应用程序中,那么在蓝图中拥有模型可能只是错误的方法?

0 投票
3 回答
206 浏览

python - Python/SQLAlchemcy“或”功能

我似乎无法找出为什么“或”的行为方式是这样的。我正在使用 SQLAlchemy 并且WTForms.ext.sqlalchemy.QuerySelectField可以QuerySelectField设置query_factory,但是如果缺少它应该回退到 fieldsquery方法:

例如

您还可以query_factory像这样设置参数:

然后在其他地方你使用这样的表格:

我看到的是,如果MyObjects.query.all()返回一个空列表,我会NoneType not callable在 QuerySelectField _get_object_list() 方法的这一行上得到一个异常:

基本上,无论 的值是多少self.query,即使它被分配给 ,它or仍然在调用。self.query_factory()None

所以,我的问题是,这是预期的行为or吗?它似乎对两者都进行了评估,然后决定是否需要使用第二个值(如果第一个值是 )None。这个对吗?

0 投票
1 回答
489 浏览

python - 具有子关系条件的 sqlalchemy 查询

我在 sqlalchemy 中有以下模型:

Magazines 包含杂志的名称,issues 包含每个杂志的问题。这些是周刊,因此该date领域Issue是发行日。

我正在尝试建立一个查询来选择在特定日期没有问题的所有杂志。最简单的方法是什么?

0 投票
3 回答
4390 浏览

heroku - 我应该如何在 Heroku 上运行 Alembic 迁移?

我正在尝试在 Heroku 上运行一个相当简单的 Flask + SQLAlchemy 站点,但我不确定应该如何运行迁移来设置我的数据库。当我运行时heroku run alembic upgrade head,我收到以下错误:

对我来说,这似乎表明它正在尝试加载 sqlite 的东西(这是我在 中的默认值alembic.ini),但我有以下内容env.py以使其使用 Heroku PostgreSQL 连接:

appFlask 实例在哪里。我正在使用 Flask-SQLAlchemy 来干燥我在应用程序中的数据库使用情况,并使用 Flask-Heroku 来确保我的所有 Flask 配置变量都从 Heroku 环境变量中正确提取。