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

 

posted @ 2020-06-06 16:53  Ian_learning  阅读(212)  评论(0编辑  收藏  举报