概述
半个月前师兄给了份爬虫任务给我,让我用sqlalchemy来保存到mysql里面,由于只说了是orm框架,所以只能不断的百度了。
然而发现大部分有关sqlalchemy的说明都是直接放代码,然后什么也不说,看得人头大。
最后终于看到一篇知乎上有一篇关于sqlalchemy的教学,感觉非常受用,因此学习后记录于此。
那么在说之前,我们先了解一下什么事sqlalchemy
sqlalchemy是一种orm框架,全称是object relational mapper,是一种对象关系映射模型
简单点说就是
python中的类 == 数据库中的表
python中的类的属性 == 表中的字段
python中类的实例 == 表中的行
那么接下来讲一下如何来使用sqlalchemy,我们知道这个东西是要连接数据库才能发挥作用的,所以我们第一步当然是连接数据库。
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://user:password@hostname:port/dbname?charset=uft8",echo=True)
首先通过pip install sqlalchemy安装sqlalchemy库
create_engine()用来初始化数据库的链接
mysql是你的数据库
pymysql是你的数据库驱动的名称
user是账户名
password是密码
hostname是你要链接的数据库的IP地址
port是端口号,一般是3306
dbname就是你要链接的数据库的名字
charset是字符集
echo设置为True表示你每一次操作过后的状态变化都会被打印出来,设置为False的话就不会了。
那么通过create_engine()我们也只是初始化链接而已,我们上面说sqlalchemy是对象关系映射模型,那么怎么映射呢。
我们通过declarative_base()可以产生一个基类,并且这个基类和它的子类都可以通过接收到的数据映射成一张表。
所以,我们为了能够操纵表,就必须继承这个类。
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
通过这一句代码我们就成功创建了基类
class User(Base):
__tablename__ = 'brief_introduction1'
name = Column(VARCHAR(255),primary_key = True)
brief = Column(Text(0))
User类继承了基类,因此我们在User类的对象一旦接收到数据,就可以映射成表
这里面必不可少的元素就是__tablename__,每一个类都一定要有这个东西,因为是表名。
那么怎么创建表呢,这里我们为了方便,直接在数据库上进行操作创建表,属性有name和brief
接下来就是插入数据
我们在create_engine的时候建立了与数据库的连接,但也仅仅是连接,我们还要通信来传输数据,那么怎么传输数据呢
这里我们用
DBSession = sessionmaker(bind = engine)
创建会话工厂,参数的意思是绑定我们之前连接的数据库。
当然了,到这一步为止,我们只是把修好路了,但是通信需要的工具我们还没拿到手,
因此我们通过
session = DBSession()
获得了通信工具,形象点就是车,现在路有了,车也有了,可以开始传数据了
u = User() #创建基类对象
u.name = 'asd' #给属性赋值
u.brief = 'zxc'
DBSession = sessionmaker(bind = engine) #修路
session = DBSession() #造车
session.add(u) #把数据放上车
session.commit() #开车
session.close() #熄火
谢谢。
最后
以上就是开放菠萝为你收集整理的sqlalchemy的基本使用(每一步骤的详细解析)的全部内容,希望文章能够帮你解决sqlalchemy的基本使用(每一步骤的详细解析)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复