码迷,mamicode.com
首页 > 数据库 > 详细

Python sqlalchemy使用

时间:2017-12-31 03:30:22      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:commit   lex   style   use   生成   返回   add   ssi   string   

 

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())
# 分组

 

Python sqlalchemy使用

标签:commit   lex   style   use   生成   返回   add   ssi   string   

原文地址:https://www.cnblogs.com/jackadam/p/8151639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!