Python sqlalchemy使用

Posted 上官飞鸿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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())
# 分组

 

以上是关于Python sqlalchemy使用的主要内容,如果未能解决你的问题,请参考以下文章

Python - 使用 sqlalchemy 的 Postgres 查询返回“空数据框”

python SQLAlchemy 缓存问题

python SQLAlchemy 缓存问题

from flask_sqlalchemy import SQLAlchemy 无法创建数据库表,代码无报错,代码如下,python版本是3.5

python第四十五天 (SQLAlchemy) 的操作

Python SQLAlchemy基本操作和常用技巧