终于不再在懵逼mysql原生语句,orm超级登场

时间:2021-12-21 22:02:10
 import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy import Integer,String,Column
from sqlalchemy.orm import sessionmaker engine = create_engine('mysql+pymysql://root:hsn198713@localhost/hsndb',
encoding = 'utf-8',echo=True)#使用pymysql创建对数据库的socket连接。
#root 是用户和密码@后面是IP和数据库名字。
Base = declarative_base()#这个是orm的基类,鸡肋里是封装前的类方法。 class User(Base):
__tablename__ = 'user'#创建表名
id = Column(Integer,primary_key=True)#参数是主键,整型
name = Column(String(32))#字符串32位
password = Column(String(64))#字符串类型 Base.metadata.create_all(engine)#创建表结构
Session_class = sessionmaker(bind=engine)#创建与数据库的会话
Session = Session_class()#生成session实例
user_obj = User(name='Humir',password='')#生成你要创建的数据对象
print(user_obj.id,user_obj.name)#处于begin状态可以rollback回滚。意思是没有保存表。
Session.add(user_obj)#将要创建的对象添加到一起 print(user_obj.id,user_obj.name)#还在内存中没有保存,打印也没用。 Session.commit()#正式保存,回滚无效。