Python与数据库 sqlalchemy 建立声明层表对象的两种方式
2023-09-11 14:18:39 时间
在对表对象进行建立的时候,通常有两种方式可以完成,以下是两种方式的建立过程对比
首先导入需要的模块,获取一个声明层
1 from sqlalchemy.sql.schema import Table, Column 2 from sqlalchemy.sql.sqltypes import Integer 3 from sqlalchemy.ext.declarative import declarative_base 4 5 Base = declarative_base()
两种方法,
- 第一种首先对__tablename__进行赋值,确定表名,随后建立列实例,赋值给同名的类属性;
- 第二种方法是直接利用Table()类对__table__进行赋值,通过Table类建立起表的各项属性信息。
Note: 此处两种方法都使用声明层作为基类,第一种方法未传入metadata,会自动使用Base.metadata,第二种方法则直接进行了传入。
1 # Method one: 2 class table_one(Base): 3 __tablename__ = 'table_one' 4 id = Column(Integer, primary_key=True) 5 6 # Method two: 7 class table_two(Base): 8 __table__ = Table('table_two', Base.metadata, 9 Column('id', Integer, primary_key=True))
最后运行显示
1 print(type(table_one), type(table_one.id), table_one.id, sep='\n') 2 print(type(table_two), type(table_two.id), table_two.id, sep='\n')
输出结果
<class 'sqlalchemy.ext.declarative.api.DeclarativeMeta'> <class 'sqlalchemy.orm.attributes.InstrumentedAttribute'> table_one.id <class 'sqlalchemy.ext.declarative.api.DeclarativeMeta'> <class 'sqlalchemy.orm.attributes.InstrumentedAttribute'> table_two.id
从输出的结果中可以看出,两种方式建立的表是相同类型的。
相关文章
- Python MySQLdb模块连接操作mysql数据库实例_python
- Python使用openpyxl读写excel文件
- python实现在目录中查找指定文件的方法
- python:定时器、定时任务、调度器
- python:ERROR: No matching distribution found for Pillow==9.1.0的处理(Python 3.6.8)
- python 数据库操作
- Python Django 常用命令:创建迁移文件/数据库建表/创建admin超级用户
- 3000W个程序员晕了,python学了有什么用?
- Python:利用python语言实现18位身份证号码和15位身份证号码相互转换
- Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
- Python的IDE:基于Eclipse/MyEclipse软件的PyDev插件配置python的开发环境(不同python项目加载不同版本的python)—从而实现Python编程图文教程之详细攻略
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- 已解决Visit python.org to download an earlier version of Python.
- 〖Python自动化办公篇⑲〗 - python实现邮件自动化 - 邮件发送
- 〖Python 数据库开发实战 - MySQL篇⑬〗- 数据库的索引机制
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑩〗- 创建新闻管理系统的具体python文件
- 〖Python 数据库开发实战 - MongoDB篇⑨〗- MongoDB的主键机制
- 从零开始学python | 使用Python映射,过滤和缩减函数:所有您需要知道的
- 太强了,用 Python+Excel 制作天气预报表!
- Python学习35:模块
- python 将一个JSON 字典转换为一个Python 对象
- python基础===Python性能优化的20条建议
- Python小白的数学建模课-20.网络流优化案例
- 【Python】对key或values是datetime类型或时间字符串的字典dict排序
- Python: 爬虫入门-python爬虫入门教程(非常详细)
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- 〖Python自动化办公篇⑳〗 - python实现邮件自动化 - 发送html邮件和带附件的邮件