标签: flask-sqlalchemy

如何在SQLAlchemy-flask应用程序中执行原始SQL

如何在SQLAlchemy中执行原始SQL?

我有一个python web应用程序,它运行在烧瓶上,并通过SQLAlchemy与数据库连接.

我需要一种方法来运行原始SQL.该查询涉及多个表连接以及内联视图.

我试过了:

connection = db.session.connection()
connection.execute( <sql here> )
Run Code Online (Sandbox Code Playgroud)

但我不断收到网关错误.

python sql sqlalchemy flask flask-sqlalchemy

193
推荐指数
6
解决办法
22万
查看次数

我怎么知道我是否可以禁用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.')
Run Code Online (Sandbox Code Playgroud)

我试图找出这个选项的作用,但Flask-SQLAlchemy文档并不清楚使用此跟踪的内容.

SQLALCHEMY_TRACK_MODIFICATIONS

如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号.这需要额外的内存,如果不需要可以禁用.

如何确定我的项目是否需要,SQLALCHEMY_TRACK_MODIFICATIONS = True或者我是否可以安全地禁用此功能并在我的服务器上保存内存?

python sqlalchemy flask flask-sqlalchemy

116
推荐指数
4
解决办法
5万
查看次数

jsonify在Flask中的SQLAlchemy结果集

我正在尝试在Flask/Python中jsonify一个SQLAlchemy结果集.

Flask邮件列表建议采用以下方法:http://librelist.com/browser//flask/2011/2/16/jsonify-sqlalchemy-pagination-collection-result/#04a0754b63387f87e59dda564bde426e:

return jsonify(json_list = qryresult)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError: <flaskext.sqlalchemy.BaseQuery object at 0x102c2df90> 
is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我在这里俯瞰什么?

我发现了这个问题:如何将SqlAlchemy结果序列化为JSON?这看起来非常相似但是我不知道Flask是否有一些魔力使其更容易,如邮件列表帖子所示.

编辑:为了澄清,这就是我的模型

class Rating(db.Model):

    __tablename__ = 'rating'

    id = db.Column(db.Integer, primary_key=True)
    fullurl = db.Column(db.String())
    url = db.Column(db.String())
    comments = db.Column(db.Text)
    overall = db.Column(db.Integer)
    shipping = db.Column(db.Integer)
    cost = db.Column(db.Integer)
    honesty = db.Column(db.Integer)
    communication = db.Column(db.Integer)
    name = db.Column(db.String())
    ipaddr = db.Column(db.String())
    date = db.Column(db.String())

    def __init__(self, fullurl, url, comments, overall, shipping, cost, honesty, communication, name, ipaddr, date): …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

112
推荐指数
7
解决办法
11万
查看次数

如何更新SQLAlchemy行条目?

假设表有三列:username,passwordno_of_logins.

当用户尝试登录时,会检查具有类似查询的条目

user = User.query.filter_by(username=form.username.data).first()
Run Code Online (Sandbox Code Playgroud)

如果密码匹配,他继续前进.我想要做的是计算用户登录的次数.因此,每当他成功登录时,我想增加该no_of_logins字段并将其存储回用户表.我不知道如何使用SqlAlchemy运行更新查询.

python sqlalchemy flask-sqlalchemy

112
推荐指数
5
解决办法
14万
查看次数

Flask-SQLAlchemy导入/上下文问题

我想构建我的Flask应用程序,例如:

./site.py
./apps/members/__init__.py
./apps/members/models.py
Run Code Online (Sandbox Code Playgroud)

apps.members 是一个Flask蓝图.

现在,为了创建模型类,我需要掌握应用程序,例如:

# apps.members.models
from flask import current_app
from flaskext.sqlalchemy import SQLAlchemy

db = SQLAlchemy(current_app)

class Member(db.Model):
    # fields here
    pass
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试将该模型导入我的Blueprint应用程序,我会感到害怕RuntimeError: working outside of request context.我怎样才能正确掌握我的应用程序?相对导入可能有效,但它们非常丑陋且有自己的上下文问题,例如:

from ...site import app

# ValueError: Attempted relative import beyond toplevel package
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

104
推荐指数
2
解决办法
5万
查看次数

如何在Flask-SQLAlchemy中按id删除记录

users我的MySql数据库中有表.这个表有id,name而且age领域.

我怎样才能删除一些记录id

现在我使用以下代码:

user = User.query.get(id)
db.session.delete(user)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)

但我不想在删除操作之前进行任何查询.有没有办法做到这一点?我知道,我可以使用db.engine.execute("delete from users where id=..."),但我想使用delete()方法.

谢谢!

python sqlalchemy flask flask-sqlalchemy

101
推荐指数
4
解决办法
8万
查看次数

Flask SQLAlchemy查询,指定列名

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

python sqlalchemy flask-sqlalchemy

98
推荐指数
5
解决办法
9万
查看次数

Flask-SQLalchemy更新行的信息

如何更新行的信息?

例如,我想更改id为5的行的name列.

python sqlalchemy flask-sqlalchemy

95
推荐指数
4
解决办法
11万
查看次数

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.

有可能吗?

python sqlalchemy pandas flask-sqlalchemy

92
推荐指数
6
解决办法
4万
查看次数

Case Insensitive Flask-SQLAlchemy Query

我正在使用Flask-SQLAlchemy从用户数据库中进行查询; 然而,同时

user = models.User.query.filter_by(username="ganye").first()
Run Code Online (Sandbox Code Playgroud)

将返回

<User u'ganye'>
Run Code Online (Sandbox Code Playgroud)

user = models.User.query.filter_by(username="GANYE").first()
Run Code Online (Sandbox Code Playgroud)

回报

None
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法以不区分大小写的方式查询数据库,因此第二个示例仍将返回

<User u'ganye'>
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

90
推荐指数
3
解决办法
4万
查看次数

标签 统计

flask-sqlalchemy ×10

python ×10

sqlalchemy ×8

flask ×6

pandas ×1

sql ×1