mypy报告了以下代码中的一个错误:
import enum
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Enum
Base = declarative_base()
class MyEnum(enum.Enum):
A = 1
B = 2
class MyTable(Base):
__tablename__ = 'my_table'
col = Column(Enum(MyEnum), nullable=Fa
我在第57行看到了中的代码片段:
id = db.Column(UUID, default=lambda: str(uuid.uuid4()), primary_key=True)
所以我想尝试一下,并在我的应用程序的models.py中使用它(因为我更喜欢我的id的uuid类型)。
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql import UUID
import uuid
from app import db
class Co
我碰巧遇到了一个以前从未见过的基于同一个ORM模式使用sqlalchemy的问题。下面是一段代码。
@contextmanager
def session_scope():
""" provide a transaction scope around a series of operations """
session = db_session()
try:
yield session
session.commit()
except:
session.rollback
我想执行一个查询,如下所示: database.execute(
"UPDATE examples SET x = :x WHERE id = :example_id",
{
'x': x,
'example_id': example_id
} 在该模型中,"x“被声明为"JSON”类型的字段。hstore和array是在执行此查询时形成的,但我需要避免这种情况。我不知道如何告诉SQLAlche
我的应用程序似乎完全能够基于.env文件、导入的配置类和直接定义变量进行配置。但是,根据我定义变量的方式,FLASK_DEBUG无法改变。
我可能应该注意到,我正在windows上使用Visual代码。有人告诉我,我需要使用Linux或者除了windows以外的任何东西,而且我打算使用,但是现在这不是一个选项,所以如果能帮助我理解这个系统是如何工作的,以及如何在这个系统中导航,我将不胜感激。
config.py:
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class DevelopmentConfig(obj
我正在深入研究类型提示,并键入暗示我的一些代码,因为我认为这是一个很好的实践。我有一个函数,它接受sqlalchemy和cx_Oracle连接/会话对象。我想出了炼金术的暗示。在一些文档中四处窥探,试图用cx_Oracle来解决这个问题,但没有结果。
我的代码
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy.engine.base import Engine
import cx_Oracle
# code that creates engine would go here
...
def
我有app.py
from resources.user import User
from flask import Flask
from flask_restful import Api
from db import db
db.init_app(app)
api.add_resource(User, '/user/<int:user_id>')
在resources/user.py中
from flask_restful import Resource
from models.user import UserModel
class User(Resourc
我正在尝试从AppEngine标准(Python2.7)连接到Python第二代。直到现在,我直接使用MySQLDB驱动程序,这是很好的。
我曾经尝试切换到SQLAlchemy,但是现在我总是在部署代码时出现这个错误(在本地它似乎工作得很好),导致了一个错误500 (不仅仅是一些连接丢失了,它经常失败):
OperationalError: (_mysql_exceptions.OperationalError) (2013, "Lost connection to MySQL server at 'reading initial communication packet
我有一个原始sql查询,它是:
select distinct(user_id) from details_table where event_id in (29,10) and user_id in (7,11,24,45) and epoch_timestamp >= 1433116800 and epoch_timestamp <= 1506816000;
它在psql中返回:
user_id
---------
7
24
(2 rows)
现在,当我通过sqlalchemy运行这个原始的sql查询时,我得到了一个sqlalchemy.engin
我试图从中学习如何在SQLAlchemy中创建条目和查询python中的MYSQL数据库。当我第一次尝试查询数据库时,请按照他们的部分来测试一个对象是否已经添加到数据库中(请参阅下面的大型代码块),我得到以下错误:AttributeError: 'Connection' object has no attribute 'contextual_connect'
我可以查询数据库。例如,如果我将最后一行代码更改为our_user = session.query(User).filter_by(name='ed'),它将成功地返回一个查询对象,但我不知
看一看:
In [1]: from sqlalchemy import select
In [2]: select
Out[3]: <function sqlalchemy.expression.select>
我不明白上面的代码是如何工作的。您应该始终指定完整的路径,对吗?如下所示:
In [1]: from sqlalchemy.sql.expression import select
In [2]: select
Out[2]: <function sqlalchemy.expression.select>
另一个问题:sqlalchemy告诉我路径是sqlalc
我正在尝试从一个数据库中的表中提取模式,并将其传输到另一个数据库。以下是执行此操作的函数的一部分。当调用Table( ... )时,它会出错。
函数示例:
def transfer_data(self, from_db, to_db, tables, flush_interval=1000, table_data_filters = {}):
if from_db is to_db or from_db == to_db:
raise Exception("""Usage: Can't transfer tables to and fro
我希望函数接受一个继承了SQLAlchemy的declarative_base的类,它将根据其列的属性返回不同的结果。这里有一些代码来说明我的概念。
def my_func(sql_class):
result = 0
for col in sql_class.__table__.colomns:
if col.type == INTEGER:
if col.type.unsigned:
result += 5
else:
result +
我得到的错误是:sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) A value is required for bind parameter 'geboorteDatum' [SQL: 'INSERT into klanten (naam, geboorteDatum)VALUES(?, ?)'] [parameters: [{'naam': 'a'}]] (Background on this error at: http://sqlalch
在我看来,MetaData.reflect()和sqlalchemy.ext.automap.prepare()表应该能够在许多用例中交替使用,但它们不能。
metadata.tables['mytable'] into conn.execute(select(...))返回一个sqlalchemy.engine.cursor.CursorResult,迭代器直接获取列(例如x.columnA)。
但是,automap_base().classes.mytable在同一个conn.execute(select(...))中返回一个sqlalchemy.engine.result
我正在寻找一种方法来告诉sqlalchemy将一些tabes上的复杂查询映射到一个自定义类MyResult,而不是默认的RowProxy类。下面是一个简单的工作示例
'''
create table foo(id integer, title text);
create table bar(id integer, foo_id integer, name text);
insert into foo values(0, 'null');
insert into foo values(1, 'eins');
insert into bar
x = db.session.query(User).filter_by(username = request.form['username'], password = request.form['password']).first()
print vars(x)
return jsonify(x)
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: < User WashingtonGeorge> is not JSON serializabl
我想使用绑定参数在数据库中执行"create“语句。这是可行的(没有绑定参数):
from sqlalchemy.sql import text
from sqlalchemy import create_engine
con = create_engine(\\..)
s = text("""create table test_table as select * from dual where 1 = 1 """)
con.execute(s)
但是,如果我使用绑定参数:
s = text("""create
我希望动态派生列,并将server_default设置为。
进入Computed(...)的语句必须从其他列派生,因此需要在映射之后访问该类:
from uuid import uuid4
from sqlalchemy import func, Computed, ForeignKey, Column
from sqlalchemy.orm import relationship
from sqlalchemy.sql.base import Executable
from sqlalchemy.ext.declarative import as_declarative
from sqlal
我尝试使用CURD操作,使用Flask和SQLAlchemy.But获取Error,同时连接到数据库。
这是Error日志。
/usr/local/lib/python3.4/dist-packages/flask_sqlalchemy/__init__.py:819: UserWarning: SQLALCHEMY_DATABASE_URI not set. Defaulting to "sqlite:///:memory:".
'SQLALCHEMY_DATABASE_URI not set. Defaulting to '
/usr/local/lib
我有一个有列的表- id(int),date(DateTime),value(float)。我想按有id=2.的所有行的日期输出每日平均组
为此,我编写了以下sql查询,查询运行良好:
select cast(date as date), avg(value) from table where id=2 group by cast(date as date)
对于同样的问题,如果我想在sqlalchemy中执行,我使用了以下表达式:
>> from sqlalchemy import sql, types
>> x = sql.cast(Table.date, type
在sqlalchemy中,我使用经典映射和autoload=True。我想查询来自postgresql的from类型的数据。
D:\Python27\lib\site-packages\sqlalchemy\dialects\postgresql\base.py:1706: SAWarning: Did not recognize type 'json' of column 'comm_media_alias'name, format_type, default, notnull, domains, enums, schema)
如何处理这个问题
有人告诉我,当你将一个对象传递给一个方法时,它是“按值”传递的。我做了一个小测试来检查它:
Point p = new Point(1, 1);
Circle c = new Circle(p);
p.x = 999;
Console.WriteLine(c.p.x);
上面的代码打印"999",但我认为对象是复制到方法中的
有人告诉我,如果不使用"ref“(或"out"),该方法将获取值
对象的。
有没有人能跟我说清楚?
谢谢,
套接字