python 数据库连接 CRUD

Posted qukaige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 数据库连接 CRUD相关的知识,希望对你有一定的参考价值。

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer
from sqlalchemy.orm.session import sessionmaker
from sqlalchemy import func

engine = create_engine(\'mysql+pymysql://root:412013@localhost/testdb?charset=utf8\',echo=False)

Base = declarative_base()  # 生产orm基类

class User(Base):
    __tablename__ = \'user\'  # 表名
    id = Column(Integer, primary_key=True)
    name = Column(String(32))  # varchar(32)
    password = Column(String(64))  # varchar(64)

    def __init__(self,name,password):
        self.name = name
        self.password = password

    def __repr__(self):
        return \'<@user:[name=%s,password=%s]> \' %(self.name,self.password)


Base.metadata.create_all(engine)  # 不存在创建数据表


Session_class = sessionmaker(bind=engine)  # 创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例
Session = Session_class()  # 生产session实例

user_obj = User(name=\'kaige\',password=\'123456\')  # 生成你要创建的数据对象
print(user_obj.name, user_obj.id)  # 此时还没创建对象呢,打印一下id发现还是None
#  插入数据 , 必须要commit
Session.add(user_obj)  # 把要创建的数据对象添加到这个session里, 一会统一创建
print(user_obj.name, user_obj.id)  # 此时也依然还没创建
# 提交数据
Session.commit()

# Session.rollback()  回滚

# 查询 一条
# my_user = Session.query(User).filter_by(name=\'kaige\').first()
# 查询所有
# my_user = Session.query(User).filter(User.name==\'kaige\').all()
# 修改
# my_user = Session.query(User).filter_by(name=\'kaige\').first()
# my_user.name = \'I love you22222222\'
# Session.commit()  # 修改插入需要commit
# 包含多个条件
# my_user = Session.query(User).filter(User.name.in_([\'kaige\', \'I love you\'])).all()
# 模糊查询
# my_user = Session.query(User).filter(User.name.like("I%")).all()
# 统计
# my_user = Session.query(User).filter(User.name == \'kaige\').count()
# 分组
\'\'\'
  SELECT count(user.name) AS count_1, user.name AS user_name
  FROM user GROUP BY user.name
\'\'\'
# print(Session.query(func.count(User.name),User.name).group_by(User.name).all() )
# 输入结果 : [(1, \'I love you\'), (2, \'I love you22222222\'), (19, \'kaige\')]
# Session.query(User).filter(User.name.in_([\'Jack\',\'rain\'])).all()
print(my_user)

http://www.cnblogs.com/alex3714/articles/5978329.html

以上是关于python 数据库连接 CRUD的主要内容,如果未能解决你的问题,请参考以下文章

python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)

python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)

11SpringBoot-CRUD-thymeleaf公共页面元素抽取

JDBC,连接池及CRUD操作

数据库操作,jdbc的CRUD

Python之如何优雅的重试