ORM(Object-Relational Mapping) 对象关系映射
• 关系型数据库与Python代码之间做映射
• 不需要直接写SQL语句
• 通常以面向对象(Object-Oriented,OO)的形式对数据进行封装及交互
安装模块
pip install peewee
查看数据库的表和字段
.get_tables() -> 获取数据库的表名称
.get_columns(表名) -> 获取某个表的各个字段名称
from peewee import SqliteDatabase # 导入数据库
db = SqliteDatabase('douban_comment_data.db') # 读取数据
print(db.get_tables()) # 获取数据库的表名称
print(db.get_columns('comment')) # 获取某个表的各个字段名称
自动生成模型对应的类
在控制台/命令行中输入:
python -m pwiz -e sqlite douban_comment_data.db>my_models.py
用法: python -m pwiz-e 数据库类型数据库地址> 输出的模型文件
生成的my_models.py文件
from peewee import *
database = SqliteDatabase('douban_comment_data.db')
class UnknownField(object):
def __init__(self, *_, **__): pass
class BaseModel(Model):
class Meta:
database = database
class Comment(BaseModel):
add_time = TextField(column_name='ADD_TIME')
content = TextField(column_name='CONTENT')
creator = TextField(column_name='CREATOR')
id = AutoField(column_name='ID', null=True)
movieid = TextField(column_name='MOVIEID')
rating = IntegerField(column_name='RATING')
time = TextField(column_name='TIME')
class Meta:
table_name = 'comment'
class Movie(BaseModel):
add_time = TextField(