sqlAlchemy搭建sqliteOrm
2024-09-05 03:12:57
一:引入文件
from sqlalchemy import Column, Integer, VARCHAR, Text
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker Base = declarative_base() #构造基类
二:表结构
class TiKu(Base):
__tablename__ = 'spider_tiku'
id = Column(Integer(), primary_key=True, autoincrement=True)
kaoshi = Column(VARCHAR(200), nullable=True)
subject = Column(VARCHAR(200), nullable=True)
chapter = Column(VARCHAR(200), nullable=True)
section = Column(VARCHAR(200), nullable=True)
tixing = Column(VARCHAR(20), nullable=True)
question_case = Column(Text(), nullable=True)
question = Column(Text, nullable=True)
a = Column(VARCHAR(1000), nullable=True)
b = Column(VARCHAR(1000), nullable=True)
c = Column(VARCHAR(1000), nullable=True)
d = Column(VARCHAR(1000), nullable=True)
e = Column(VARCHAR(1000), nullable=True)
other_sections = Column(VARCHAR(3000), nullable=True)
answer = Column(VARCHAR(500), nullable=True)
analysis = Column(Text(), nullable=True)
source = Column(Text(), nullable=True) def __str__(self):
return '< {} {} {}>'.format(self.kaoshi, self.subject, self.chapter)
三:sqlite orm
class SqliteOrm(object): def __init__(self, path):
sqlite_path = 'sqlite:///{}'.format(path)
self.engine = create_engine(sqlite_path)
Session = sessionmaker(bind=self.engine)
self.session = Session() def create_table(self):
self.drop_table()
Base.metadata.create_all(self.engine) def insert(self, obj):
# 将该实例插入到表
self.session.add(obj)
self.session.commit() def insert_many(self, batch_data: list):
# 一次插入多条记录形式
self.session.add_all(batch_data)
self.session.commit() def drop_table(self, table_name='spider_tiku'):
try:
self.execute_sql('drop table %s' % table_name)
except Exception as e:
pass def execute_sql(self, sql):
self.session.execute(sql)
最新文章
- Ubuntu14.0下安装Zend Framework 2
- 20145212 《Java程序设计》第1周学习总结
- jQueryUI日期显示
- linux中改变文件权限和属性
- nyoj 488 素数环
- 简学Python第二章__巧学数据结构文件操作
- Android MTK平台最完备的开机动画修改教程
- PS快速祛除脸上小雀斑
- mysql视图、存储过程等
- JS基础:求一组数中的最大最小值,以及所在位置
- python3 读取文件跳过文件第一行内容
- angularjs 异步请求无法更新数据
- ptime概述
- Word 2013无法启用Restrict Editing解决方法
- Entity Framework Context上下文管理(CallContext 数据槽)
- [gj]HK一行所见闻
- Myeclipse 2013 professional 破解
- Python3 条件控制(九)
- Git之安装及使用
- CAS单点登陆的两个原理图