博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 数据库连接 CRUD
阅读量:4882 次
发布时间:2019-06-11

本文共 2151 字,大约阅读时间需要 7 分钟。

import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,String,Integerfrom sqlalchemy.orm.session import sessionmakerfrom sqlalchemy import funcengine = 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#  插入数据 , 必须要commitSession.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

转载于:https://www.cnblogs.com/412013cl/p/8544137.html

你可能感兴趣的文章
leetcode : 4 sum (再次提交,超时)
查看>>
关于umask
查看>>
postman get和post结合
查看>>
CURL_SAFE_UPLOAD
查看>>
Android Studio下载安装
查看>>
Java 抽象类
查看>>
CSS3学习系列之边框
查看>>
android pendingIntent的理解
查看>>
Nuget 配置文件的位置
查看>>
Python之——python-nmap的安装与常用方法说明
查看>>
Add to List 136. Single Number (找到单独的数) by Python
查看>>
Java学习笔记-策略模式
查看>>
liunx总结题
查看>>
数据结构系列(5)之 红黑树
查看>>
面试题巩固
查看>>
如何用.net制作一个简易爬虫抓取华为应用市场数据
查看>>
LeetCode:路径总和【112】
查看>>
国内首个HTML5应用开发平台AppCan近期将公测
查看>>
多线程循环打印ABC10次
查看>>
有些事情如果现在不做,以后也不会做了
查看>>