sqlachemy rom框架学习:
sqlachemy是python语言中用于开发orm框架的库(orm我理解为:自定义语句代替原生sql命令)。它的底层是基于MySQL,pymysql等的封装。
上代码:
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
engine =create_engine('mysql+pymysql://root:123456@localhost/oldboydb',encoding='utf-8',echo=True) #create_engine:连接数据库(相当于声明一个socket对象)
# sqlalchemy底层是基于mysql、pymysql等的封装,支持MySQL等包
# #选择用什么底层(mysql+pymysql);用户名:密码;主机;数据库;字符集;
#echo=True:打印所有信息
Base =declarative_base() #declarative_base()方法:生成orm基类
class User(Base): #定义(声明)表结构;注:类继承了Base
__tablename__='test' #表名
id =Column(Integer,primary_key=True) #字段id:整形,主键 Column是sqlalchemy的方法
# age =Column(String(32)) #字段age
name =Column(String(32)) #字段name
password =Column(String(64)) #字段password
Base.metadata.create_all(engine) #创建表结构; create_all方法:创建所有被继承对象(父类调子类); engine:socket连接对象;
#无则创建,有则不创建
from sqlalchemy.orm import sessionmaker #sessionmaker方法:对已创建的连接对象进行操作;
Session_class =sessionmaker(bind =engine) #bind:绑定实例对象(结果Session_class是一个类,而不是实例对象,不同于cursor方法,直接生成实例对象(游标))
Session =Session_class() #生成实例对象(相当于cursor =connection.cursor())
user_obj =User(name ='alex',password ='alex123') #生成数据对象
Session.add(user_obj) #添加对象至表格
print(user_obj.name,user_obj.id)
Session.commit() #上传保存(自动开启事务,不保存则丢失)
|