Flask-SQLAlchemy
weixin_43343144
这个作者很懒,什么都没留下…
展开
-
SQLachemy的查询顺序和mysql的查询数据原理分析(一致性规则非常重要)
mySQL正确的语法执行顺序(官方查询规则:https://dev.mysql.com/doc/refman/8.0/en/select.html)#mysql例子:SELECT DISTINCT * from gift WHERE launched=0 GROUP BY gift.isbn#正确编写顺序...select ... from... where.... gro...原创 2019-02-14 17:46:22 · 411 阅读 · 0 评论 -
SQLachemy更新数据库的两种方法(Query.updata或直接对象赋值方式)!
#第一种方法,使用Query中的updata函数更新,然后commit提交 def updata_password(email,new_password): new_password_hash = generate_password_hash(new_password, method="sha256") try: #第一种方法,使用Query中的updata函...原创 2019-02-15 10:26:57 · 4949 阅读 · 0 评论 -
python-flask sqlalchemy:如何声明基类(支持继承而不创建表的方法)
如果基类没有添加属性:__abstract__ = True会报如下错误:(不是基类,而是一个table,创建table要主键和关系表的外键)1、(没有主键)sqlalchemy.exc.ArgumentError: Mapper Mapper|Base|base could not assemble any primary key columns for mapped table 'ba...原创 2019-02-10 12:22:11 · 3273 阅读 · 0 评论 -
flask-sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406数据库字段超出长度错误)
这个问题是说数据库user的password字段长度超出,修改长度后,一定要删掉之前的数据库,在重新运行后方能生效,如果之前的user不删除,修改后不会生效,切记切记! sqlalchemy.exc.DataErrorsqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column ...原创 2019-02-10 21:17:49 · 3043 阅读 · 3 评论 -
flask-SQLAlchemy数据库模型插入数据的时候使用session.commit()必须处理异常回滚db.session.rollback()
最为原始的try/except办法,多次插入数据就要写多次,很麻烦,使用python原生的contextlib.contextmanager简化代码! try: user_db = User(email=self.email, nickname=self.nickname, password=self.password) db....原创 2019-02-12 18:48:02 · 12463 阅读 · 0 评论 -
SQLAlchemy 如何支持model类执行初始化构造函数__init__(默认情况下是不会调用__init__,必须加装饰器@orm.reconstructor)
关于装饰器@orm.reconstructor介绍:https://docs.sqlalchemy.org/en/latest/orm/constructors.html?highlight=reconstructor#sqlalchemy.orm.reconstructor 如果是正常的User()创建实例对象的方式是会执行__init__的,但是数据库SQLachemy创建就不是这...原创 2019-02-19 22:45:10 · 2802 阅读 · 1 评论 -
Python-Flask-SQLAlchemy模型之一对多或多对一的关系映射总结
官方关于一对多和多对多的映射:https://flask-sqlalchemy.palletsprojects.com/en/2.x/models/#many-to-many-relationships我的案例:一个Wallet 对应多张表【BuyOrder和OrderBase】class Wallet(Base): # 每条wallet记录对应多条buy_order相同的...原创 2019-06-04 23:17:51 · 810 阅读 · 0 评论