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())
# 分组
原文地址:https://www.cnblogs.com/jackadam/p/8151639.html