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() #提交
|
执行结果:
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1906971