sqlalchemy orm 操作 MySQL

一、ORM介绍

orm英文全称object relational mapping,是对象映射关系程序,简单来说类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用SQL语言。

orm的优点:
隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。使得我们与数据库交互变得简单易行,并且完全不用考虑的SQL语句。快速开发,由此而来。
ORM使我们构造固化数据结构变得简单易行。

缺点:
无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。

安装:
pip install sqlalchemy #也可以去下轮子安装,最近pypi不太好上
pip install pymysql

二、使用

在数据库中,当我们要建一个表时:
~~~
create table tablename (
field_id integer not null auto_increment,
field2 char(32) not null,
field3 varchar(64),
primary key (field_id));
~~~

写了一个简单的SQL语句,但是还有插入数据啊、查询啊、连表查询啊、增删改查等等,既然学到了orm也知道写SQL语句有多痛苦了
那我们用sqlalchemy来写一个吧!
sqlalchemy连接数据库语句:Python下使用 mysql+pymysql
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]

from sqlchemy import create_engine
from sqlchemy.ext.declarative import declarative_base
from sqlchemy import Integer, String, Column, ForeignKey
from sqlchemy.orm import sessionmaker

engine = create_engine("mysql+pymysql://user_name:password@localhost/data_base_name",
               encoding='utf-8', echo= True)

猜你喜欢

转载自www.cnblogs.com/shiqi17/p/9368521.html