zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Apple MDM
    苹果核
    iOS自动化测试的那些干货
    Wifi 定位原理及 iOS Wifi 列表获取
    详解Shell脚本实现iOS自动化编译打包提交
    PushKit 占坑
    【译】使用 CocoaPods 模块化iOS应用
    NSMutableArray 根据key排序
    iOS 通过tag查找控件
    自己使用 2.常量变量,数据类型,数据的输入输出。
  • 原文地址:https://www.cnblogs.com/Ian-learning/p/13055345.html
Copyright © 2011-2022 走看看