python使用mysql的两种使用方式初学:咱们毗邻虚拟机中的centos中的mysql,然后盘查test数据库中student外的数据
这是证据盘查到了5条数据,那倘若咱们必要查看这五条的确的数据是什么,咱们要用:
注:executemany默认会启动一个事情,倘若没有it(),数据将不会被插入凯旋
orm英文全称object relational mapping,便是对象映照合联步骤,方便来说形似python这种面向对象的步骤来说完全皆对象,咱们实例化一个对象,通过点的方法来移用内部的函数。orm相当于把数据库给实例化了,数据库都是合联型的,通过orm将编程言语的对象模子和数据库的合联模子设置映照合联,如此咱们正在利用编程言语对数据库举办操作的时分能够直接利用编程言语的对象模子举办操作就能够了,而不必直接利用sql言语。
1.潜伏了数据拜候细节,“紧闭”的通用数据库交互,ORM的重心。他使得咱们的通用数据库交互变得方便易行,而且全部不必思量活该的SQL语句
插入数据是利用sessionmaker,通过绑定上面创筑的毗邻创筑出一个类,天生session实例(相当于之前的cursor),用面向对象的形式创筑两条记载,然后增添,最终commit就能够了
咱们就查出了好几条数据,咱们要轮回才干看出来的确的数据。咱们思要直接看到谁是谁,咱们何如办呢?
如此就显示出咱们盘查的结果了。就相当于,倘若你要查看什么数据,以什么款式的形式显示,就能够正在__repr__这个函数中筑树
正在这里,咱们用filter_by().all()盘查出通盘的数据,那咱们用filter_by().first(),就能够盘查出数据库中的第一条数据
盘查到你要点窜的这个数据,然后思点窜面向对象里的数据雷同,对数据举办点窜,最终commit()就能够了
这个时分能够看到一先导咱们是也许看到刚才插入的数据,不过回滚之后咱们就看不到了,咱们到数据库中看看:
能够看出咱们插入的数据的id是4,如此看来确实是先插入进去,然后回滚之后删除的
批量插入用add_all,内部用一个列外放入要插入的数据, 留心的是,由于设置了外键,因此正在增添数据的时分,study_record的数据肯定要正在student外数据插入之后才也许被插入,倘若沿途插入就会报错
说白了便是咱们现正在正在做相干盘查的时分,有两个字段同时相干到了Address外中 ,正在做反向盘查的时分它分不明确谁是谁,通过address反向查的时分分不清哪个字段代外billing_address,哪个字段是代外了shipping_address.那咱们何如处分呢?
两个外,然后咱们正在遭遇一本书有众个作家联合出席出书,就把作家id写正在沿途,不过如此倒霉于盘查
这就达成了双向的一对众,一个作家能够包括众本书,一本书能够包括众个作家。这就酿成了众对众。
这里咱们利用了别的一种设置外的形式,设置了第三张外book_m2m_auther,这张外设置起来后根基上不必要咱们去人工的增添数据,对用户来讲是不必合切这内部有什么数据,是由orm主动助你保护的。也就不必要给它设置映照合联了。
不过正在mysql端实在一经相干上了,由于外键一经设置好了,正在orm盘查的时分,还要做一个orm级此外 内存对象的映照:relationship,告诉book外和author外正在盘查数据的时分去哪张内外盘查。
这个时分就设置好了众对众的合联。咱们就能够插入数据作为就:(先把外设置起来再说)
上面赤色标帜是设置相干合联,如此设置出来之后,book_m2m_author外主动就会稀有据。
必要正在创筑数据库毗邻的时分正在数据库后面加上 charset=utf8
正在删除数据的时分咱们也同样的不必要管book_m2m_author外,sqlalchemy会主动助咱们把对应的数据删除:
以上所述是小编给群众先容的python利用mysql的两种利用形式,盼望对群众有所助助,倘若群众有任何疑难请给我留言,小编会实时恢复群众的。正在此也绝顶感激群众对剧本之家网站的扶助!
转载请注明出处。