【sqlalchemy连接 MySQL(转)】教程文章相关的互联网学习教程文章

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP 'users_i【图】

flask 迁移数据库报错 报错: sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Cant DROP users_ibfk_1; check that column/key exists")[SQL: ALTER TABLE users DROP FOREIGN KEY users_ibfk_1] 解决办法: 将每个数据库表类型InnoDB转为 MyISAM 如果报错ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constrain fails。 需要删除每个表的外键限制 如果需要表类型InnoDB,迁移...

mysql-服务器端的SQLAlchemy datetime操作【代码】

我有一张表,上面列出了预定的付款和过去的付款,我需要查找同一用户/合同在同一周内是否有两项收费.select count(*) from charge as c1, charge as c2 where c1.id_contract = c2.id_contract and c1.status = 'SUCCESS' and c2.status in ('SUCCESS', 'PENDING', 'WAITING') and c1.id > c2.id and c2.due_time > (c1.due_time - interval 7 day);我很难在sqlalchemy中重新生成此查询,主要是因为我找不到如何以数据库不可知的形式...

如何远程使用Python SQLAlchemy连接MySQL数据库?【代码】

我无法远程访问MySQL.我使用SSH隧道,并希望使用Python SQLALchemy连接数据库MySQL. 当我在我的控制台中使用MySQL-client并指定“ptotocol = TCP”时,一切都很好!我用命令:mysql -h localhost —protocol=TCP -u USER -p我通过SSH隧道访问远程数据库. 但是,当我想使用Python SQLAchemy连接到数据库时,我找不到像-protocol = TCP这样的选项否则,我只连接到本地MySQL数据库.请告诉我,有没有办法使用SQLAlchemy来做到这一点.解决方法...

sqlalchemy定义mysql时间戳字段【代码】

update_time = Column(TIMESTAMP, nullable=False, comment=更新时间戳,server_default=text(CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP))server_onupdate=func.now()不生效,也不生成 on update通过text把文本加入到列语句中,这样其实只适用于mysql数据库,其他数据库可能有兼容性问题通过调试查看到输出的语句update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间戳, ...

python – Flask-SQLAlchemy声明性和MySQL特定的数据类型【代码】

我有一个已经存在的MySQL数据库,其中有许多列定义了MySQL特定的列类型(MEDIUMINT,TINYINT等等),即使列类型属于标准SQL数据类型,有时也会声明为unsigned. 现在我正在编写一个Flask应用程序,以各种方式提供访问DB的API.使用普通的SQLAlchemy,我将从sqlalchemy.dialects.mysql导入特定的数据类型定义,如:from sqlalchemy import Column from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.dialects.mysql imp...

python – 如何让SQLAlchemy在更新CURRENT_TIMESTAMP上“覆盖MySQL”【代码】

我继承了一个较旧的数据库,该数据库设置了一个“on update CURRENT_TIMESTAMP”,放在一个只能描述项目创建的字段上.使用PHP我一直在UPDATE子句上使用“timestamp = timestamp”,但在SQLAlchemy中我似乎无法强制系统使用设置的时间戳. 我没有选择,需要更新MySQL表(数百万行)?foo = session.query(f).get(int(1)) ts = foo.timestamp setattr(foo, 'timestamp', ts) setattr(foo, 'bar', bar) www_model.www_Session.commit()我也尝...

mysql – 用sqlalchemy检查行和返回id的存在是否缓慢【代码】

所有, 我正在读取一个csv文件并使用sqlalchemy将数据添加到MySQL数据库.其中一个表是地址表,它只能保存唯一的地址.这些地址与另一个具有地址id的外键字段的“语句”表之间存在关系. 因此,对于我的数据文件中的每一行,我创建一个新的语句obj,然后获取相关地址的id.如果地址已存在,则返回该id.否则,我创建一个新的地址obj并返回该id.这是使用下面的代码完成的,改编自this SO question.def get_or_create(self, model, rec):instance ...

python – SqlAlchemy Mysql:由于IntegrityError而无法删除表【代码】

当我尝试重新初始化我的数据库时,我不断收到IntegrityError:sqlalchemy.exc.IntegrityError: (IntegrityError) (1217, 'Cannot delete or update a parent row: a foreign key constraint fails') '\nDROP TABLE users' ()在我的init_db脚本中,我有:def main(argv=sys.argv):if len(argv) != 2:usage(argv)config_uri = argv[1]setup_logging(config_uri)settings = get_appsettings(config_uri)engine = create_engine('...')Se...

使用flask_sqlalchemy操作mysql的一个测试【代码】

示例代码from flask_sqlalchemy import SQLAlchemy from flask import Flaskapp=Flask(__name__)app.config[SQLALCHEMY_DATABASE_URI] = mysql+pymysql://root:password@127.0.0.1:3306/db2app.config[SQLALCHEMY_TRACK_MODIFICATIONS] = Falsedb=SQLAlchemy(app)class User(db.Model): id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(80), unique=True)email = db.Column(db.String(120), uni...

python – SqlAlchemy:如何在mysql中创建一个LONGBLOB列?【代码】

使用sqlalchemy和mysql–python,我有这个表:from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Index, LargeBinary Base = declarative_base() class Tbl(Base):__tablename__ = 'tbl'...data = Column(LargeBinary())但是,当我创建这个表(使用Base.metadata.create_all(engine)),然后DESCRIBE tbl;在mysql中,我得到了这个:mysql> describe logs; +--------------+-------------+------+...

sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry【图】

排错: 看到 Duplicate entry 1 for key PRIMARY是主键错误  看一看自己添加的数据id是1再查询一下数据库中的表,发现id=1的记录已经存在了 所以在代码中让id=2,程序即可正常运行

使用带有mysql unix时间戳的sqlalchemy定义一个表【代码】

背景,有几种方法可以在MySQ中存储日期. >作为字符串,例如“09/09/2009”.>使用函数UNIX_TIMESTAMP()作为整数,这应该是传统的unix时间表示(你知道自纪元加上/减去闰秒后的秒数).>作为MySQL TIMESTAMP,mysql特定数据类型与unix时间戳不同.>作为MySQL Date字段,另一种特定于mysql的数据类型. 不要将案例2与案例3(或案例4)混淆是非常重要的.我有一个带有整数日期字段的现有表(案例2)如何在sqlalchemy中以一种我不必访问mysql的“FROM_U...

mysql – python:sqlalchemy – 如何使用新的事件系统确保连接不会过时【代码】

我在python中使用sqlalchemy包.在现有表上执行自动加载后,我的操作需要一些时间才能执行.当我尝试使用连接时,这会导致以下错误:sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away')我有一个简单的实用程序函数执行多次插入:def insert_data(data_2_insert, table_name):engine = create_engine('mysql://blah:blah123@localhost/dbname')# Metadata is a Table catalog. metadata = Meta...

python – 我应该如何在瓶子应用程序中使用sqlalchemy会话以避免在查询期间“丢失与MySQL服务器的连接”【代码】

我的瓶子/ sqlalchemy应用程序托管在pythonanywhere.com上,不确定这是否重要,我希望不是.在我离开它一段时间之后,应用程序抛出’在查询期间丢失与MySQL服务器的连接’.然后我刷新它,它工作正常. 请注意,我也没有sqlachemy实现相同的查询,仅使用MySQLdb.该实现始终工作正常,它从不抛出异常,因为它每次都建立一个新的连接. 我假设,在像pythonanywhere这样的托管环境中,我无法摆弄可能影响此错误的mysql配置,例如max_allowed_pa??cket...

python – 如果我只打算使用MySQL,如果速度是优先考虑的,有没有令人信服的理由使用SQLAlchemy?

如果我使用的是MySQL,那么SQLAlchemy似乎非常重量级. 为什么在仅使用MySQL的应用程序中使用SQLAlchemy有令人信服的理由.解决方法:ORM意味着您的OO应用程序在被解释为对象的交互时实际上是有意义的. 没有ORM意味着您必须沉迷于SQL和对象之间的阻抗不匹配.在没有ORM的情况下工作意味着在SQL查询结果集,单个SQL语句和对象之间映射大量冗余代码. SQLAchemy将您的应用程序干净地划分为交互的对象和(现在)碰巧是关系数据库的持久性机制. ...