python3+mysql两表部分同步

最近有个需求,多表做汇总表,于是在演示表里测试一下,想到了python,用pymysql来测试

1.建立两张表

建立表t1

CREATE TABLE `t1`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `note` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `num` int(11) NULL DEFAULT NULL,
  `t1` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `t2` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

在表T1插入数据

INSERT INTO `t1` VALUES (1, '语文', '10', 20, '语文1', '语文2');
INSERT INTO `t1` VALUES (2, '数学', '11', 21, '数学1', '数学2');
INSERT INTO `t1` VALUES (3, '量子力学', '12', 22, '量子力学1', '量子力学2');
INSERT INTO `t1` VALUES (4, '美术', '13', 23, '美术1', '美术2');
INSERT INTO `t1` VALUES (5, '计算机', '14', 24, '计算机1', '计算机2');
INSERT INTO `t1` VALUES (6, '音乐', '15', 25, '音乐1', '音乐2');
INSERT INTO `t1` VALUES (7, '物理', '16', 26, '物理1', '物理2');
INSERT INTO `t1` VALUES (8, '化学', '17', 27, '化学1', '化学2');
INSERT INTO `t1` VALUES (9, '生物', '18', 28, '生物1', '生物2');

建立表t2表为空

CREATE TABLE `t2`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `note` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `num` int(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

运行python程序保存为sync.py

#sync.py
import pymysql
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='Bl_123456',db='')
cur=conn.cursor()       #创建游标
sql="SELECT title,note,num FROM (SELECT title,note,num FROM t1 UNION ALL SELECT title,note,num from T2) c GROUP BY c.title HAVING COUNT(*)=1 ORDER BY c.title ;"
cur.execute(sql)
#获取数据库的数据(元组)
data=cur.fetchall()
result=list(data)
sql1='insert into t2(title,note,num) values(%s,%s,%s)'
cur.executemany(sql1,result)
conn.commit()
cur.close()
conn.close()
print(result)

t1数据

t2运行前数据

t2运行后数据

更新数据会被添加进t2

添加后

记录一下,以免以后找不到了.现在的记性比忘性差的太远了!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当你开始开发一个基于python+django+mysql 的管理系统时,可以遵循以下步骤: 1. 确定需求:确定你的管理系统要实现什么功能,需要哪些模块和页面。 2. 设计数据库:根据你的需求,设计数据库模型,包括结构、字段、数据类型、关系等。 3. 创建项目:使用django-admin startproject 命令创建一个django项目。 4. 创建应用:使用python manage.py startapp 命令创建一个应用,将应用和项目进行关联。 5. 配置数据库:在项目的settings.py文件中配置数据库连接,包括数据库名称、用户名、密码、主机地址等。 6. 编写模型代码:在应用的models.py文件中编写数据库模型代码,包括创建、字段和关系。 7. 进行数据库迁移:使用python manage.py makemigrations 和 python manage.py migrate 命令进行数据库迁移,将模型代码同步到数据库中。 8. 编写视图代码:在应用的views.py文件中编写视图函数,处理业务逻辑和数据操作。 9. 编写模板代码:在应用的templates目录下编写HTML模板代码,包括页面布局、单、列等。 10. 配置路由:在应用的urls.py文件中配置URL路由,将URL请求映射到对应的视图函数。 11. 测试运行:使用python manage.py runserver 命令启动开发服务器,测试运行应用,查看效果,调整和优化代码。 以上是一个基本的开发流程,当然你可以根据自己的实际需求和经验进行调整和改进。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风从北来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值