问题标签 [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 回答
33980 浏览

python - Flask-SQLAlchemy:如何有条件地插入或更新一行

我的应用程序使用了 Flask、Flask-SQLAlchemy、Flask-WTF 和 Jinja2 的组合。

在它目前的化身中,我有一个设置表。该表将只有一个记录和一个字段。最初,该表包含零条记录。

我想要实现的是:

  • 鉴于 db 中不存在任何条目,则显示准备好供用户输入的空表单
  • 鉴于存在条目,显示该条目,然后
  • 如果用户更改了值,则更新数据库中的记录。

这是我的代码:

模型.py

表格.py

视图.py

就目前而言,如果该代码不存在但该rssfeed列为空,则该代码将创建一条记录。

INSERT如果记录不存在并且UPDATE如果存在,我该如何更改此代码?

0 投票
1 回答
107 浏览

python - 使用 or 语句的 ORM 查询

我正在尝试使用语句http://www.w3schools.com/sql/sql_in.asp通过 id 列表查询用户

可以在没有字符串查询和执行功能的情况下做到这一点吗?

我正在寻找类似下面的东西

0 投票
2 回答
2860 浏览

python - 如何从桌面应用程序向 python 烧瓶服务器发送 http 请求?

我已经使用烧瓶框架配置了 python 服务器。现在我想从我的桌面应用程序向服务器发送请求。我的服务器位置是:http://127.0.0.1:5000/

我已经编写了可以在浏览器上运行的代码,但我想从我的桌面应用程序中访问该代码。

0 投票
1 回答
1988 浏览

python - 使用 Flask-SQLAlchemy 进行多对多多数据库连接

我正在尝试使这种多对多连接与 Flask-SQLAlchemy 和两个 MySQL 数据库一起工作,它非常接近,只是它为连接表使用了错误的数据库。这里是基础...

我有main_dbvendor_db。表设置为main_db.users, main_db.user_products(关系表),然后vendor_db.products。应该很清楚这些是如何连接的。

在我的 app.py 中,我正在设置这样的数据库:

模型定义是这样设置的:

问题是,当我尝试获取用户的产品时,它试图vendor_db用于连接表而不是main_db. 有什么想法可以main_db改用它吗?我尝试设置另一个绑定main_db并设置info={'bind_key': 'main_db'}关系表定义,但没有运气。谢谢!

0 投票
2 回答
4890 浏览

python - 烧瓶应用的结构

我正在尝试使用 Flask 创建一个简单但并非微不足道的应用程序,但我一直遇到文档中没有很好解释的情况。

我希望我的应用程序在不同的模块之间拆分,但看起来很难从主模块以外的任何其他地方访问主app对象(或dbfrom )。flask-sqlalchemy看起来您必须真正编写自己的方式,将其视为一切都可以访问的全局,这需要一些有问题的代码和一些时间。

两者appdb都是在主应用程序实例化的级别创建的,每个示例都假定它们在顶层可用。但是如果我将不同的 url 处理程序拆分为不同的模块,我将失去使用@app.route装饰器的能力。我可以用 解决这个问题app.add_url_rule('/...', some.module...),但话又说回来,app 没有传递给那个函数。

同样的事情发生在db- 我不知道我是否应该将它粘贴到,或者通过某种方式g使其可以访问。app这样做并不能帮助我将模型移动到一个单独的模块中——导入它们时我应该如何访问db它们?所有示例再次假设它仅可用作局部变量。

我是否遗漏了一些明显的东西,或者我是否试图在这里使用烧瓶来完成错误的任务?

0 投票
1 回答
138 浏览

python - 无法从脚本访问数据库

我正在尝试从脚本中的数据库中的表中删除一行。也许这不是最简单的方法,但我认为它应该是可能的。我正在尝试以下操作:

我收到以下错误:

0 投票
9 回答
178802 浏览

python - Flask SQLAlchemy 查询,指定列名

如何使用模型在查询中指定我想要的列(默认选择所有列)?我知道如何使用 sqlalchmey session: 来做到这一点session.query(self.col1),但是如何使用模型来做到这一点?我做不到SomeModel.query()。有办法吗?

0 投票
1 回答
2676 浏览

python - 模型的 Python 干净导入 - SQL Alchemy

我有一个具有以下目录结构的烧瓶应用程序:

  • 我的应用程序/
    • 应用程序.py
    • __init__.py
    • 楷模/
      • __init__.py
      • 用户.py

这些模型使用 Flask-SQLAlchemy,因此,它们需要dbapplication.py

用户.py:

因为任何模型都需要访问应用程序的 SQLAlchemy 实例、db属性,所以我必须将整个包放在路径上,然后从主应用程序模块导入。为了理智起见,我想将模型保存在单独的文件中。我需要将路径代码放在每个模型的顶部吗?有没有更好的办法?我宁愿没有这样的完整路径输入,因为它们可能被部署到具有不同目录结构的不同主机上。理想情况下,会有某种方法在内部处理路径,因此当它通过我用作另一个用户时,mod_wsgi我不必手动更改代码。

0 投票
1 回答
4538 浏览

python - Flask Sqlalchemy:不同模块之间的关系

我正在关注 Flask-SQLAlchemy 教程。我在 python 2.6 上有 Flask 0.9、sqlalchemy 0.7.8 和 flask-sqlalchemy 0.16。

我正在尝试创建“一对多”关系,就像他们的教程中一样。

之后,我可以创建数据库:

当两个类都在同一个文件上创建时,它工作得很好。

当我想通过 2 个不同的文件(2 个不同的模块)创建它时,它不再起作用。

这只是一个例子(我正在尝试用大量的类做一些更复杂的事情,我需要两个不同的模块之间存在关系,但我会简化它,以便我的问题更容易理解。)

我有 2 个模块:人员和地址,它们都有:

他们每个人都有之前写的类的声明。

我的主要功能在第三个模块中:

我仍然在 Eclipse 中遇到错误:

*sqlalchemy.exc.NoReferencedTableError:与列'Address.person_id'关联的外键找不到表'person',用于生成目标列'sid'的外键*

我可以找到另一个帖子,有人建议使用“元数据”,但我找不到合适的方法来使用它。

有没有人有解决这个问题的想法?

谢谢 !

0 投票
1 回答
13669 浏览

object - Flask SqlAlchemy:TypeError:'Class'对象不可迭代

我正在关注 Flask-SQLAlchemy 教程。我在 python 2.6 上有 Flask 0.9、sqlalchemy 0.7.8 和 flask-sqlalchemy 0.16。(我和日食一起工作)

(教程在这里:http ://packages.python.org/Flask-SQLAlchemy/models.html )

我有两个班级:一个男人和一个钱包。有1-1的关系。(每个人都有自己的钱包)

在我的“主”模块中,我创建了我的数据库:

在同一个模块中,我尝试将 Wallet 附加到 Man :

但我得到这个错误:

我不明白为什么会出现这样的错误。添加映射对象的正确方法是什么?

PS:我一直在学习 SQLAlchemy 教程,我相信他们会以不同的方式声明事物:

我应该相信哪个教程?

非常感谢 !