python orm框架SQLAlchemy简单应用(数据库操作)

本文详细介绍使用SQLAlchemy ORM方式实现数据库操作的过程,包括建立数据库连接、声明映射文件、创建数据库表、初始化映射实例及持久化对象等步骤。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#_*_coding:utf-8_*_
'''
创建SQLAlchemy应用基本过程
1、创建连接(和关系数据库创建连接)
2、声明映射文件(python中到类和数据库中的表做一对一的映射,这样就可以通过python中的类对数据库中到表进行操作)
3、创建模式(可以创建表)
4、初始化映射实例
5、创建会话
6、持久化实例对象
'''
 
from  sqlalchemy  import  create_engine
 
#创建连接
engine  =  create_engine( 'mysql://root:1qaz#EDC@192.168.89.101:3306/student' , echo = True )
'''
参数说明:
mysql 表示要连接的数据库是mysql数据库
root 表示用root账户登录mysql数据库
1qaz#EDC 表示连接数据库的root账户的密码
@ 是一个符号,规定的格式
192.168.89.1.101:3306 表示数据库的连接地址和端口3306
soms 表示将要连接的数据库的名字
echo=True 表示在执行的时候是否打印sql语句,False为不打印
'''
 
 
#声明映射文件
from  sqlalchemy.ext.declarative  import  declarative_base  #引入了declarative_base类
Base  =  declarative_base()  #实例化了一个declarative_base实例
 
from  sqlalchemy  import  Column, Integer, String  #引入类Column, Integer, String类
class  User(Base):  #创建自己的实例类 名字为User 继承Base类
     __tablename__  =  'users'  #这个属性,表示这个类和数据库中的users表进行映射
     id  =  Column(Integer, primary_key = True #这个属性表示id在数据库表中代表着一列,Integer表示是整数,而且id是主键
     name  =  Column(String( 10 ))  #这个属性表示在数据库表中也是一列,它的类型是string
     passwd  =  Column(String( 10 ))  #这个属性表示在数据库表中也是一列,它的类型是string
 
     def  __repr__( self ):  #定义了一个方法,目的是将User类更加形象的表示出来,没啥太大用途
         return  "<User(name='%s', name='%s', password='%s')>"  %  ( self .name,  self .name,  self .passwd)
 
 
#创建模式,创建数据库表,表名称:users
User.metadata.create_all(engine)
 
#创建会话(session)
'''创建会化'''
from  sqlalchemy.orm  import  sessionmaker  #引入sessionmaker这个函数
Session  =  sessionmaker(bind = engine)  #创建session对话,通过这个session就可以对数据库进行一些操作
session  =  Session()  #绑定
 
#持久化一个实例对象
ed_user  =  User( id = 2 ,name = 'tantianran' , passwd = '1qaz#EDC' ) #向数据库表中到列插入数据
session.add(ed_user)  #将这个实例添加到session中
session.commit()  #提交


执行结果:

wKiom1jJHl6yYcdxAAIbcFYWbmI008.png-wh_50

wKiom1jJHl6BNK5ZAABOW5cLzls503.png-wh_50



本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1906971

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值