Questions tagged «flask-sqlalchemy»

Flask-SQLALchemy是Flask的扩展,提供SQLAlchemy支持。它旨在使通过SQLAlchemy进行数据库操作变得更加容易和简单。它具有与Flask相同的三条款BSD许可。

8
如何在Flask-SQLAlchemy应用中执行原始SQL
如何在SQLAlchemy中执行原始SQL? 我有一个在烧瓶上运行的python Web应用程序,并通过SQLAlchemy连接到数据库。 我需要一种运行原始SQL的方法。该查询涉及多个表联接以及内联视图。 我试过了: connection = db.session.connection() connection.execute( <sql here> ) 但是我不断收到网关错误。

3
我如何知道是否可以禁用SQLALCHEMY_TRACK_MODIFICATIONS?
每次我运行使用Flask-SQLAlchemy的应用程序时,都会收到以下警告,提示该SQLALCHEMY_TRACK_MODIFICATIONS选项将被禁用。 /home/david/.virtualenvs/flask-sqlalchemy/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') 我试图找出此选项的作用,但是Flask-SQLAlchemy文档尚不清楚该跟踪的用途。 SQLALCHEMY_TRACK_MODIFICATIONS 如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。 如何确定我的项目是否需要,SQLALCHEMY_TRACK_MODIFICATIONS = …

5
如何更新SQLAlchemy行条目?
假设表有三列:username,password和no_of_logins。 当用户尝试登录时,将使用查询之类的内容检查条目 user = User.query.filter_by(username=form.username.data).first() 如果密码匹配,他将继续。我想做的是计算用户登录的次数。因此,无论他何时成功登录,我都希望增加该no_of_logins字段并将其存储回用户表。我不确定如何使用SqlAlchemy运行更新查询。

3
如何在Flask-SQLAlchemy中按ID删除记录
我users在MySql数据库中有表。这个表有id,name而且age领域。 如何删除某些记录id? 现在,我使用以下代码: user = User.query.get(id) db.session.delete(user) db.session.commit() 但是我不想在删除操作之前进行任何查询。有什么办法吗?我知道,我可以使用db.engine.execute("delete from users where id=..."),但是我想使用delete()方法。



2
Flask-SQLAlchemy导入/上下文问题
我想构建我的Flask应用,例如: ./site.py ./apps/members/__init__.py ./apps/members/models.py apps.members 是烧瓶蓝图。 现在,为了创建模型类,我需要拥有该应用程序,例如: # apps.members.models from flask import current_app from flaskext.sqlalchemy import SQLAlchemy db = SQLAlchemy(current_app) class Member(db.Model): # fields here pass 但是,如果我尝试将该模型导入到我的Blueprint应用程序中,则会感到恐惧RuntimeError: working outside of request context。我如何在这里正确持有我的应用程序?相对导入可能有效,但它们很丑陋,并且有自己的上下文问题,例如: from ...site import app # ValueError: Attempted relative import beyond toplevel package

5
SQLAlchemy ORM转换为Pandas DataFrame
这个话题已经有一段时间没有在这里或其他地方了。是否有将SQLAlchemy <Query object>转换为pandas DataFrame 的解决方案? Pandas具有使用能力,pandas.read_sql但这需要使用原始SQL。我有两个避免发生这种情况的原因:1)我已经使用ORM拥有了一切(本身就是一个很好的理由),并且2)我正在使用python列表作为查询的一部分(例如:模型类.db.session.query(Item).filter(Item.symbol.in_(add_symbols)在哪里Item)并且add_symbols是列表)。这等效于SQL SELECT ... from ... WHERE ... IN。 有什么可能吗?


3
不区分大小写的Flask-SQLAlchemy查询
我正在使用Flask-SQLAlchemy从用户数据库中查询;但是,虽然 user = models.User.query.filter_by(username="ganye").first() 将返回 <User u'ganye'> 在做 user = models.User.query.filter_by(username="GANYE").first() 退货 None 我想知道是否有一种以不区分大小写的方式查询数据库的方法,以便第二个示例仍会返回 <User u'ganye'>

6
flask-sqlalchemy或sqlalchemy
我是flask和sqlalchemy的新手,我只是开始在flask应用程序上工作,现在我正在使用sqlalchemy。我想知道使用flask-sqlalchemy与sqlalchemy是否可以获得任何显着的好处。我在http://packages.python.org/Flask-SQLAlchemy/index.html中找不到足够的动机,或者也许我不明白它的价值!谢谢您的澄清。

1
declarative_base()和db.Model有什么区别?
Flask-SQLAlchemy插件的快速入门教程指导用户创建继承db.Model该类的表模型,例如 app = Flask(__main__) db = SQLAlchemy(app) class Users(db.Model): __tablename__ = 'users' ... 但是,SQLAlchemy教程和bottle-SQLAlchemy README都建议表模型继承从Base实例化declarative_base()。 Base = declarative_base() class Users(Base): __tablename__ = 'users' ... 这两种方法有什么区别?

3
Flask SQLAlchemy多对多插入数据
我试图在Flask-SQLAlchemy中建立多对多关系,但似乎我不知道如何填写“多对多标识符数据库”。您能帮我了解我在做什么错以及应该怎么看吗? class User(db.Model): __tablename__ = 'users' user_id = db.Column(db.Integer, primary_key=True) user_fistName = db.Column(db.String(64)) user_lastName = db.Column(db.String(64)) user_email = db.Column(db.String(128), unique=True) class Class(db.Model): __tablename__ = 'classes' class_id = db.Column(db.Integer, primary_key=True) class_name = db.Column(db.String(128), unique=True) 然后是我的标识符数据库: student_identifier = db.Table('student_identifier', db.Column('class_id', db.Integer, db.ForeignKey('classes.class_id')), db.Column('user_id', db.Integer, db.ForeignKey('users.user_id')) ) 到目前为止,当我尝试将数据插入数据库时​​,看起来像这样。 # User user1 = User( …

10
如何围绕现有数据库构建Flask应用程序?
我已经有一个现有的数据库,其中包含很多表和很多数据MySQL。我打算创建一个Flask应用程序,并与它一起使用sqlalchemy。现在,我在irc上查询了一下,然后在Google上环顾了一下,并尝试了以下想法: 首先,我使用sqlacodegen从我的生成模型DB。但是后来我对此有些困惑,看上去有些困惑。我发现了这个。 这看起来是一个优雅的解决方案。 因此,第二,我models.py根据那里的解决方案重写了自己的内容,现在我更加困惑了。我正在寻找与现有数据库一起构建此Flask应用程序的最佳方法。 我查看了flask文档,但对于具有现有数据库的项目并没有真正获得任何帮助。从头开始创建东西,创建数据库以及所有东西都有很多好东西。但是我真的很困惑。 请注意,这是我的第一天工作Flask经验,但我有的经验Django,因此基本概念并非障碍。在为该用例选择最佳方法时,我需要一些指导。详细的解释将不胜感激。详细地说,我绝对不希望有人编写所有代码并为此而spoon之以鼻,但这足以使我起步,即将该数据库无缝集成到flaskvia中sqlalchemy。注意我的数据库在MySQL。

3
在不参考应用程序的情况下在蓝图模型中使用Flask-SQLAlchemy
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我正在尝试使用蓝图在Flask中创建一个“模块化应用程序”。 但是,在创建模型时,我遇到了必须引用该应用程序才能获得dbFlask-SQLAlchemy提供的-object的问题。我希望能够在多个应用程序中使用一些蓝图(类似于Django应用程序的使用方式),所以这不是一个好的解决方案。* 可以进行切换,让蓝图创建db实例,然后由应用程序将其与蓝图的其余部分一起导入。但是随后,任何其他希望创建模型的蓝图都需要从该蓝图而不是应用程序中导入。 因此,我的问题是: 有没有一种方法可以让蓝图定义模型,而又不知道它们以后将使用的应用程序-并且有多个蓝图组合在一起?通过这种方式,我的意思是必须从您的蓝图导入应用程序模块/软件包。 我从一开始就错了吗?蓝图是否不是要独立于应用程序并可以重新分发(例如Django应用程序)? 如果没有,那么您应该使用什么模式来创建类似的东西?烧瓶扩展?您是否应该简单地做到这一点-也许集中所有模型/方案以及Ruby on Rails? 编辑:我现在一直在考虑这个问题,这可能与SQLAlchemy而不是Flask有关,因为declarative_base()在声明模型时必须具有。而这得从什么地方来的,反正! 也许最好的解决方案是像Ruby on Rails一样,将项目的模式定义在一个位置并进行分散。声明性SQLAlchemy类定义实际上更像是schema.rb,而不是Django的models.py。我想这也将使使用迁移(从Alembic或sqlalchemy-migrate)更容易。 我被要求提供一个示例,所以让我们做一些简单的事情:假设我有一个描述“ flatpages”的蓝图,“ flatpages”是存储在数据库中的简单,“静态”内容。它使用仅带有短名称(用于URL),标题和正文的表。这是simple_pages/__init__.py: from flask import Blueprint, render_template from .models import Page flat_pages = Blueprint('flat_pages', __name__, template_folder='templates') @flat_pages.route('/<page>') def show(page): page_object = Page.query.filter_by(name=page).first() return render_template('pages/{}.html'.format(page), page=page_object) 然后,最好让这个蓝图定义自己的模型(在中simple_page/models.py): # TODO Somehow get ahold of …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.