Python9-MySQL-MySQL-ORM框架-day48
2024-09-30 03:41:16
ORM框架:AQLAlchemy
-作用:
1、提供简单的规则
2、自动转换成SQL语句 -DB first: 手动创建数据库以及表 -> ORM框架 -> 自动生成类
code first:手动创建类 ->ORM框架 -> 以及表
功能:
-创建数据库表
连接数据库(非SQLAlchemy,是pymsql)
类转换SQL语句
-操作数据行
增
删
改
查
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy import create_engine Base = declarative_base()
# 创建单表
class UserType(Base):
__tablename__ = 'usertype'
id = Column(Integer, primary_key=True,autoincrement=True)
name = Column(String(32),nullable=True,default='sf',index=True) class Users(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True,autoincrement=True)
name = Column(String(32),nullable=True,default='sf',index=True)
extra = Column(String(16),unique=True)
user_type_id = Column(Integer,ForeignKey('usertype.id'))
def create_db():
engine = create_engine("mysql+pymysql://root:123@127.0.0.1:3306/t1", max_overflow=5)
Base.metadata.create_all(engine)
def delete_db():
engine = create_engine("mysql+pymysql://root:123@127.0.0.1:3306/t1", max_overflow=5)
Base.metadata.drop_all(engine)
#增加
obj1 = UserType(name='普通用户')
session.add(obj1)
session.commit()
# obj1 = UserType(name='普通用户')
objs=[
UserType(name='超级用户'),
UserType(name='白金用户'),
UserType(name='黑金用户')
]
# session.add(obj1)
session.add_all(objs)
session.commit()
session.close()
#修改
# session.query(UserType.id,UserType.name).filter(UserType.id>0).update({'name':'黑金'})
session.query(UserType.id,UserType.name).filter(UserType.id>2).update({UserType.name: UserType.name + "xxx"}, synchronize_session=False)
session.commit()
session.close()
# 删
# session.query(UserType.id,UserType.name).filter(UserType.id>3).delete()
# 查
# user_type_list = session.query(UserType).all()
# for row in user_type_list:
# print(row.id,row.name)
# user_type_list = session.query(UserType.id,UserType.name).filter(UserType.id>2)
# for row in user_type_list:
# print(row.id,row.name)
最新文章
- 【DWR系列02】-DWR逆向Ajax即服务器推送
- Web之路笔记之一
- crawler: 爬虫的基本结构
- JDBC使用步骤
- codeforces 713A A. Sonya and Queries(状态压缩)
- [转]VGA、QVGA、CIF、QCIF 。。。的含义
- Hadoop中两表JOIN的处理方法(转)
- 跨域使用jsonp 获取天气预报
- linux RedHat6.4下nginx安装
- zookeeper使用和原理探究(一)(转)
- 7个基于Linux命令行的文件下载和网站浏览工具
- PHP数字价格格式化,保留两位小数
- 赵雅智_Swift(1)_swift简单介绍及类型
- Andoird 自定义ViewGroup实现竖向引导界面
- Linux 系统的用户和组
- MySQL 5.7开启二进制日志注意事项
- 前端使用 validate , 根据条件进行动态的验证添加
- bzoj3698 XWW的难题
- Linux下SSL证书申请以及配置到Nginx
- [Windows Azure] How to Deploy a Database to Windows Azure
热门文章
- (win10 64位)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- js统计字符出现次数
- 自动布局库--Masonry使用
- SpringBoot2.0之三 优雅整合Spring Data JPA
- 【web】movie review——静态页面训练、css训练
- nmap --script http-enum,http-headers,http-methods,http-php-version -p 80 目标域
- hihoCoder 挑战赛10 #1144 : 01串
- 使用HANA Web-based Development Workbench创建最简单的Server Side JavaScript
- TFS看板规则
- iOS界面设计切图小结