zoukankan      html  css  js  c++  java
  • Python sqlalchemy使用

    import sqlalchemy
    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, String
    from sqlalchemy.orm import sessionmaker
    
    engine = create_engine('sqlite:///Plan.db', encoding='utf-8')
    
    Base = declarative_base()  # 生成orm基类
    
    
    class User(Base):
        __tablename__ = 'user'  # 表名
        id = Column(Integer, primary_key=True)
        name = Column(String(32))
        password = Column(String(64))
    
    
    Base.metadata.create_all(engine)  # 创建表结构
    
    Session_class = sessionmaker(bind=engine)  # 创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例
    Session = Session_class()  # 生成session实例
    
    # 基础结束
    
    
    
    # 插入开始
    user_obj = User(name="alex", password="alex3714")  # 生成你要创建的数据对象
    print(user_obj.name, user_obj.id)  # 此时还没创建对象呢,不信你打印一下id发现还是None
    
    Session.add(user_obj)  # 把要创建的数据对象添加到这个session里, 一会统一创建
    print(user_obj.name, user_obj.id)  # 此时也依然还没创建
    
    Session.commit()  # 现此才统一提交,创建数据
    # 插入结束
    
    
    # 查询开始
    my_user = Session.query(User).filter_by(name="alex").first()
    print(my_user)
    print(my_user.id, my_user.name, my_user.password)
    # 查询结束
    
    # 修改开始
    my_user = Session.query(User).filter_by(name="alex").first()
    
    my_user.name = "Alex Li"
    
    Session.commit()
    # 修改技术
    
    # 多条件查询
    objs = Session.query(User).filter(User.id > 0).filter(User.id < 7).all()
    # 多条件查询
    
    # 统计
    Session.query(User).filter(User.name.like("Ra%")).count()
    # 统计
    
    # 分组
    from sqlalchemy import func
    
    print(Session.query(func.count(User.name), User.name).group_by(User.name).all())
    # 分组
  • 相关阅读:
    Linux02--文件系统与磁盘管理
    Android02-Activity01
    Android01-概述
    LeetCode | Binary Tree Level Order Traversal II
    LeetCode | Binary Tree Level Order Traversal
    LeetCode | Binary Tree Postorder Traversal
    LeetCode | Binary Tree Inorder Traversal
    LeetCode | Binary Tree Preorder Traversal
    LeetCode | Symmetric Tree
    LeetCode | Balanced Binary Tree
  • 原文地址:https://www.cnblogs.com/jackadam/p/8151639.html
Copyright © 2011-2022 走看看