python 学习——sqlalchemy 模块
1 import sqlalchemy 2 from sqlalchemy import create_engine 3 from sqlalchemy.ext.declarative import declarative_base 4 from sqlalchemy import Column, Integer, String 5 from sqlalchemy.orm import sessionmaker 6 7 #engine = create_engine("mysql+pymysql://xxx:yyy@localhost/test", 8 # encoding='utf-8', echo=True) 9 10 engine = create_engine("mysql+pymysql://xxx:yyyy@localhost/test", encoding='utf-8', echo=False) 11 12 Base = declarative_base() # 生成orm基类 13 14 15 class User(Base): 16 __tablename__ = 'user' ### 表名 17 id = Column(Integer, primary_key=True) 18 name = Column(String(32)) 19 password = Column(String(64)) 20 21 def __repr__(self): 22 return "User(name=%s,password=%s)" %(self.name, self.password) 23 24 25 Base.metadata.create_all(engine) # 创建表结构 26 27 Session_class = sessionmaker(bind=engine) # 创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例 28 Session = Session_class() # 生成session实例 29 30 # user_obj = User(name="aa", password="cc3714") # 生成你要创建的数据对象 31 # user_obj2 = User(name="bb", password="bb3714") # 生成你要创建的数据对象 32 # print("test"+ user_obj.name, user_obj.id) # 此时还没创建对象呢,不信你打印一下id发现还是None 33 # 34 # Session.add(user_obj) # 把要创建的数据对象添加到这个session里, 一会统一创建 35 # Session.add(user_obj2) # 把要创建的数据对象添加到这个session里, 一会统一创建 36 # print(user_obj.name, user_obj.id) # 此时也依然还没创建 37 38 # my_user = Session.query(User).filter_by(name="aa").all() 39 # print(my_user[0].name,my_user[0].password) 40 41 42 # my_user = Session.query(User).filter_by(name="aa Li").first() 43 # 44 # my_user.name = "acd" 45 46 # my_user = Session.query(User).filter_by(name="bb").all() 47 # 48 # print(my_user) 49 50 # my_user = Session.query(User).filter(User.id==2).all() 51 # 52 # print(my_user) 53 54 # my_user = Session.query(User).filter(User.id>=2).all() 55 # 56 # print(my_user) 57 58 # my_user = Session.query(User).filter(User.id>=2).filter(User.id <5).all() 59 # 60 # print(my_user) 61 # 62 # my_user = Session.query(User).filter(User.id>=2).filter(User.id <5).first() 63 # 64 # my_user.name = "Test" 65 # 66 # print(my_user) 67 68 ##roll back 69 70 # my_user = Session.query(User).filter_by(id=1).first() 71 # my_user.name = "Jack" 72 # 73 # fake_user = User(name='Rain', password='12345') 74 # Session.add(fake_user) 75 # 76 # print(Session.query(User).filter(User.name.in_(['Jack', 'rain'])).all()) # 这时看session里有你刚添加和修改的数据 77 # 78 # Session.rollback() # 此时你rollback一下 79 # 80 # print(Session.query(User).filter(User.name.in_(['Jack', 'rain'])).all()) # 再查就发现刚才添加的数据没有了。 81 82 83 ##get all data; 84 # print(Session.query(User.name,User.id).all() ) 85 86 print(Session.query(User).filter(User.name.like("a%")).count()) 87 88 Session.commit() # 现此才统一提交,创建数据
参考:https://www.cnblogs.com/alex3714/articles/5978329.html
更好的说明:
https://www.liaoxuefeng.com/wiki/897692888725344/955081460091040