草庐IT

SQLAlchemy

全部标签

python - 如何使用 Sqlalchemy 创建一定长度的整数?

我已经尝试了两种方法,但都不起作用,我在Google上进行了搜索,但没有找到任何合适的解决方案。我的代码如下所示:intField=Column(SmallInt(),length=5)错误说:UnknownargumentspassedtoColumn:['length']我也试过,知道它不应该工作,这个解决方案:intField=Column(SmallInt(5))它不起作用,因为此SqlAlchemy数据类型不接受参数。有什么想法吗?[更新]我使用的是MySQL作为数据库引擎,所以这里的解决方法是导入mysql自己的Integer类型,然后指定我想要的长度。在上面的例子中,我只

python - 在 flask-sqlalchemy 中使用具有相同模型的多个数据库

所以我有多个数据库。DB_US和DB_UK。它们具有完全相同的结构,但它们保存不同国家/地区的数据。我有一个带有flask_restful的api。端点接受一个国家/地区以检索该特定国家/地区的数据。我的问题是我不知道如何根据请求选择数据库。我已经阅读了绑定(bind)方法,但是您必须为每个模型指定一个__bind_key并且我的所有模型都在两个数据库中。我已经尝试在@before_request中初始化数据库,但是您不能在第一个请求完成后调用init_db方法(或任何设置方法)已处理。这是一个特殊情况,因为数据库是相同的,所以将它放在同一个数据库中似乎是有意义的,但它是更大系统的一部

mysql - SQLAlchemy 可以独立于框架独立使用吗?是否推荐这样做?

我想使用Node.js作为我的框架,但它没有管理MySQL模式和迁移的好方法。我可以单独使用SQLAlchemy吗?只是为了同步表和创建列等......?然后在我的node.js上,我将不使用SQLAlchemy来查询或插入...这是推荐的吗? 最佳答案 是的,这是可以做到的。虽然我没有任何特定于Node.js的经验,但我使用SQLAlchemy来:为非SQLAlchemy应用程序设置小型数据库。查询、更新和迁移不是使用SQLAlchemy创建的数据库。将新的使用SQLAlchemy的应用程序连接到现有的MySQL数据库。仅使用它来

python - 使用 sqlalchemy 进行区分大小写的查询

我需要使用sqlalchemy使一些查询对mysql数据库区分大小写如何使用sqlalchemy使查询区分大小写。提前致谢。 最佳答案 您需要指定列的排序规则区分大小写。SQLAlchemy对MySQL方言的支持allowsseveralcolumn-typestoacceptacollationkwarg.下面是一个示例,说明如何在创建表时指定列的排序规则。importsqlalchemyassasa.__version__#->'0.7.7'engine=sa.create_engine('mysql+mysqldb://una

python - SQLAlchemy 按分钟分组

任务是将日期时间值(使用SQLAlchemy)分组为每分钟点(按分钟分组)。我有一个自定义SQL查询:SELECTCOUNT(*)ASpoint_value,MAX(time)astimeFROM`Downloads`LEFTJOINMirrorONDownloads.mirror=Mirror.idWHEREMirror.domain_name='localhost.local'AND`time`BETWEEN'2012-06-3000:29:00'AND'2012-07-0100:29:00'GROUPBYDAYOFYEAR(time),(60*HOUR(time)+MINUTE(

python - SQLAlchemy 中的 BIT_COUNT

我想在SQLAlchemy中表示以下查询:select*fromtablewherebit_count(column&bitmask)>5基本上,我希望选择任何设置了一定数量标志的行。但是,SQLAlchemy似乎没有定义BIT_COUNT()功能。有人知道在SQLAlchemy中进行此查询的任何技巧吗? 最佳答案 >>>session.query("id","name","thenumber12").\...from_statement("SELECTid,name,12as"..."thenumber12FROMuserswhe

mysql - sqlalchemy FetchedValue 和 primary_key

我正在尝试创建一个使用UUID_SHORT()作为主键的表。我有一个触发器,可以在您执行插入操作时插入一个值。我无法让sqlalchemy将列识别为primary_key而不会提示不提供默认值。如果我确实包含默认值,即使声明了server_default=FetchedValue(),它也会在刷新后使用该默认值。我似乎能让事情正常工作的唯一方法是如果该列不是主键。我正在使用Pyramid、SQLAlchemyORM和MySQL。这是模型对象:Base=declarative_base()classPatient(Base):__tablename__='patient'patient_

如何使用SQLalchemy测试无效的记录插入?

如何编写单元测试以确认使用SQLalchemy/Postgres插入无效的记录失败?我目前正在这样做:session.add(invalid_record)session.flush()query=list(session.query(Article).filter_by(record_id=invalid_record.record_id,))assertlen(query)==0但是,当我尝试添加无效的记录(违反未限制)时,这将失败。看答案您可以使用assertraises如果您正在使用unittest,请参阅以前的答案:https://stackoverflow.com/a/282234

python - 在 SQLAlchemy 中按子查询排序

我正在尝试选择最新的线程(Thread),按最近回复它们的时间降序排列(回复是一个Post模型,这是一个标准的论坛查询)。在SQL中我会这样写:SELECT*FROMthreadAStORDERBY(SELECTMAX(posted_at)FROMpostWHEREthread_id=t.id)DESC我如何在SQLAlchemy中做这样的事情?我试过这样的事情:scalar=db.select[func.max(Post.posted_at)].where(Post.thread_id==Thread.id).as_scalar()threads=Thread.query.order

python - SQLAlchemy - 如何获取1分钟以内的所有记录和最新记录的同一分钟?

我的表有一个日期时间列,记录该行更新的时间;称之为col_datetime。我需要获取col_datetime中具有最新日期时间的行以及该记录一分钟内且具有相同分钟的所有其他记录。示例:pk|first|col_datetime1Dave2014-03-238:23:572Dan2014-03-238:22:593Teresa2014-03-238:23:014Marge2013-03-238:23:08在我的例子中,我需要查询返回第1行和第3行(即使第2行在记录#1的1分钟内,但它不是同一分钟。同样,第4行具有相同的分钟但早一年)。我在mysql中的尝试只返回第1行(尽管我需要SQL