问题标签 [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.
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 索引。
python - 如何正确测试基于 SQLAlchemy 声明式的 Python Flask 系统
我有一个项目我已经做了一段时间了,它是用 Flask 编写的,并使用带有声明性扩展的 SQLAlchemy http://flask.pocoo.org/docs/patterns/sqlalchemy/。我最近决定开始对我的项目进行单元测试,但是对于我的生活,我似乎无法弄清楚如何让它工作。
我查看了http://flask.pocoo.org/docs/testing/,但我似乎无法让它工作。
我尝试了来自不同网站的各种东西,但找不到可以正常工作的东西。
不幸的是,我似乎能得到的最好结果会导致以下错误。
对此的任何帮助将不胜感激。如果有人以前经历过这种情况并使它起作用,我想要一些指示!提前致谢。
sqlalchemy - SQLAlchemy if/not 查询会话已附加
我从一个网站获取数据,该网站发布高中足球的分数并将其放入 Flask 项目中。我正在使用 Flask-SQLAlchemy 并尝试检查游戏是否已经存在;如果不是,我在数据库中创建一个新游戏,如果它确实存在,我只想更新分数(以防自上次导入以来对分数进行任何更正。这是我的代码:
当我运行代码时,它给了我这个错误:
sqlalchemy.exc.InvalidRequestError:对象“”已附加到会话“1”(这是“2”)
这样做的正确方法是什么?
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_id
和place_id
列的 User 或 Person 相关联,其中之一将始终为空。
我希望每个用户都能.geolocation
通过父 Pin 类自动拥有一个属性,该属性引用 Geolocation 但似乎 SQLAlchemy 没有这样做。我怎样才能使子类关系起作用以实现我的目标,即让 User 和 Place 以及可能的其他类子类 Pin,让这些类中的每一个都具有通过 Pin 的地理位置属性,并且在 Pin 和地理位置之间具有一对一的关系?
python - SQL Alchemy NULL 标识键
我已经像这样定义了表的模型的 id 字段:
并相应地更改了数据库(MySQL)表,但是当我创建模型并尝试提交它时(我使用 SQLalchemy 0.7.8)
我收到这个错误
python - 在蓝图模型中使用 Flask-SQLAlchemy,无需参考应用
我正在尝试使用蓝图在 Flask 中创建一个“模块化应用程序”。
但是,在创建模型时,我遇到了必须引用应用程序才能获得db
Flask-SQLAlchemy 提供的 -object 的问题。我希望能够将一些蓝图与多个应用程序一起使用(类似于 Django 应用程序的使用方式),所以这不是一个好的解决方案。*
- 可以进行切换,让蓝图创建
db
实例,然后应用程序将其与蓝图的其余部分一起导入。但是,任何其他希望创建模型的蓝图都需要从该蓝图而不是应用程序导入。
我的问题是:
- 有没有一种方法可以让蓝图定义模型,而无需了解它们以后使用的应用程序——并且将多个蓝图组合在一起?我的意思是必须从您的蓝图中导入应用程序模块/包。
- 我一开始就错了吗?蓝图不是独立于应用程序并且是可再分发的(à la Django 应用程序)吗?
- 如果不是,那么您应该使用什么模式来创建类似的东西?烧瓶扩展?您是否应该干脆不这样做 - 并且可能集中所有模型/模式 à la Ruby on Rails?
编辑:我自己现在一直在考虑这个问题,这可能与 SQLAlchemy 比 Flask 更相关,因为你必须
declarative_base()
在声明模型时。无论如何,这一定来自某个地方!也许最好的解决方案是将项目的模式定义在一个地方并将其分散开,就像 Ruby on Rails 那样。声明式 SQLAlchemy 类定义实际上更像 schema.rb,而不是 Django 的 models.py。我想这也会使迁移(来自alembic或sqlalchemy-migrate )更容易使用。
我被要求提供一个示例,所以让我们做一些简单的事情:假设我有一个描述“平面页面”的蓝图——存储在数据库中的简单、“静态”内容。它使用一个只有短名称(用于 URL)、标题和正文的表格。这是simple_pages/__init__.py
:
然后,最好让这个蓝图定义它自己的模型(this in simple_page/models.py
):
这个问题与:
和其他各种,但所有回复似乎都依赖于导入应用程序的db
实例,或者做相反的事情。“ Large app how to” wiki 页面也使用了“import your app in your blueprint”模式。
* 由于官方文档显示了如何在蓝图中创建路线、视图、模板和资产,而不关心它“在”什么应用程序,我假设蓝图通常应该可以跨应用程序重用。然而,如果没有独立的模型,这种模块化似乎并没有那么有用。
既然蓝图可以多次挂接到应用程序中,那么在蓝图中拥有模型可能只是错误的方法?
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
。这个对吗?
python - 具有子关系条件的 sqlalchemy 查询
我在 sqlalchemy 中有以下模型:
Magazines 包含杂志的名称,issues 包含每个杂志的问题。这些是周刊,因此该date
领域Issue
是发行日。
我正在尝试建立一个查询来选择在特定日期没有问题的所有杂志。最简单的方法是什么?
heroku - 我应该如何在 Heroku 上运行 Alembic 迁移?
我正在尝试在 Heroku 上运行一个相当简单的 Flask + SQLAlchemy 站点,但我不确定应该如何运行迁移来设置我的数据库。当我运行时heroku run alembic upgrade head
,我收到以下错误:
对我来说,这似乎表明它正在尝试加载 sqlite 的东西(这是我在 中的默认值alembic.ini
),但我有以下内容env.py
以使其使用 Heroku PostgreSQL 连接:
app
Flask 实例在哪里。我正在使用 Flask-SQLAlchemy 来干燥我在应用程序中的数据库使用情况,并使用 Flask-Heroku 来确保我的所有 Flask 配置变量都从 Heroku 环境变量中正确提取。