下笔原因
按照每个网页生成对应的数据表,结构一样, 但表名不同。
那么用 pymysql 批量生成应该比较容易, Google下,在stackoverflow和官方文档都没有找到完整示例,
自己动手吧,欢迎拍砖。
要点
写SQL语句时使用注意str 的拼接。
实例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import pymysql.cursors
tablename = ["河南","山东", "山西", "上海", "福建"]
connection = pymysql.connect(host='localhost',
user='root',
password='siliver88',
db='test',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
for name in tablename:
checksql = '''DROP TABLE IF EXISTS {}'''.format(name)
cursor.execute(checksql)
sql = '''CREATE TABLE {}(
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '记录id',
`isAlive` Boolean NOT NULL DEFAULT TRUE,
`zb_url` VarChar(255) NOT NULL DEFAULT '' COMMENT '公告页面',
`file_url` VarChar(255) NOT NULL DEFAULT '' COMMENT '项目公告文件',
`title` VarChar(255) NOT NULL DEFAULT '' COMMENT '项目名称',
`content` MediumText COMMENT '段落内容',
`lettercard` MediumText COMMENT '单元格内容',
`createtime` int(11) NOT NULL DEFAULT 0 COMMENT '收录时间',
`deadline` int(11) NOT NULL DEFAULT 0 COMMENT '截标时间',
`bsdeadline` int(11) NOT NULL DEFAULT 0 COMMENT '标书购买截止时间',
`bmdeadline` int(11) DEFAULT 0 COMMENT '报名截止日期',
`kbsj` int(11) NOT NULL DEFAULT 0 COMMENT '开标时间',
`bsfyxs` VarChar(100) NOT NULL DEFAULT '下载前支付' COMMENT '标书费用形式',
`xmjs` VarChar(100) DEFAULT '' COMMENT '项目介绍',
`telephone` int(20) NOT NULL DEFAULT 0 COMMENT '联系电话',
`projectclass` varchar(255) NOT NULL DEFAULT '' COMMENT '项目类型',
`tenderee` varchar(100) NOT NULL DEFAULT '' COMMENT '招标人',
`contact` varchar(100) NOT NULL DEFAULT '' COMMENT '联系人',
`agent` varchar(255) NOT NULL DEFAULT '' COMMENT '代理机构',
PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8'''.format(name)
cursor.execute(sql)
mit()
finally:
connection.close()
print("Create tables done!")