网站首页 > 技术文章 正文
应用场景
1.在某种情况下我们需要和多个系统进行对接,实现数据的预览,这就涉及到用户信息权限的同步。
实现脚本(python)
#!/usr/bin/python3
# -*- encoding: utf-8 -*-
import pymysql
//定义数据库信息字典
db_devops = {"host": "10.41.1.19", "user": "devops", "password": "123456", "dbname": "devops", "port": 3306}
db_loonflow = {"host": "127.0.0.1", "user": "root", "password": "123456", "dbname": "loonflow_r2", "port": 3306}
database2 = "devops" #生产库同步
loonselect_sql = "SELECT username FROM account_loonuser;"
#shutselect_sql = "SELECT username,password FROM user;"
shutselect_sql = "SELECT username,secret FROM permission_userprofile;"
looninsert_sql = "INSERT INTO account_loonuser(\
password,last_login,username,alias,email,phone,is_active,creator,gmt_created,\
gmt_modified,is_deleted,type_id) VALUES ( \
%s, '2020-04-05 14:10:33', %s, '', %s, \
'','1', '', '2020-04-05 13:51:38', '2020-04-05 14:10:32', '0', '0');"
#dept sync
loondeptselect_sql = "select name from account_loondept;"
devopsselect_sql = "select id,deptName,parentId_id from permission_dept;"
loondept_sql = "INSERT INTO account_loondept(id,name,parent_dept_id,leader,approver,label,creator,gmt_created,gmt_modified,is_deleted) values(%s,%s,%s,'','','','','2023-02-20 13:51:38','2022-02-21 14:10:32',0);"
def shutuser_select(selectsql,db_info):
host = db_info["host"]
user = db_info["user"]
password = db_info["password"]
dbname = db_info["dbname"]
port = db_info["port"]
conn = pymysql.connect(host=host, user=user, password=password, port=port, database=dbname)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute(selectsql)
shutuser_dic_li = cursor.fetchall()
cursor.close()
conn.close()
print("result===%s"%shutuser_dic_li)
return shutuser_dic_li
def user_dic(loonuser_list):
new_user_dic_li = []
shutuser_dic_li = shutuser_select(shutselect_sql, db_devops) # type:list
print("======--------------------------", new_user_dic_li, shutuser_dic_li)
for shutuser in shutuser_dic_li:
if shutuser["username"] not in loonuser_list:
new_user_dic_li.append(shutuser)
return new_user_dic_li
def dept_dic(loondept_list):
new_dept_dic_li = []
devops_dic_li = shutuser_select(devopsselect_sql,db_devops) # type:list
print("devops_dic_li======", devops_dic_li,loondept_list)
for shutuser in devops_dic_li:
if shutuser["deptName"] not in loondept_list:
new_dept_dic_li.append(shutuser)
return new_dept_dic_li
def loonuser_insert(typename="user"):
db_info = db_loonflow
host = db_info["host"]
user = db_info["user"]
password = db_info["password"]
dbname = db_info["dbname"]
port = db_info["port"]
conn = pymysql.connect(host=host, user=user, password=password, port=port, database=dbname)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
if typename == "user":
cursor.execute(loonselect_sql)
loonuser_dic_li = cursor.fetchall()
loonuser_list = [i["username"] for i in loonuser_dic_li]
new_user_dic_li = user_dic(loonuser_list)
print("loonuser_list======",loonuser_list)
if new_user_dic_li:
data = []
for i in new_user_dic_li:
email = "%s@qq.com" % i["username"]
usertup = (i["secret"], i["username"], email)
data.append(usertup)
cursor.executemany(looninsert_sql, data)
conn.commit()
cursor.close()
conn.close()
print("用户更新完成")
else:
print("没有用户同步")
elif typename == "dept":
cursor.execute(loondeptselect_sql)
loondept_dic_li = cursor.fetchall()
print("=======",loondept_dic_li)
loondept_list = [i["name"] for i in loondept_dic_li]
new_dept_dic_li = dept_dic(loondept_list)
print("new_dept_dic_li",new_dept_dic_li)
if new_dept_dic_li:
data = []
for i in new_dept_dic_li:
usertup = (i["id"], i["deptName"], i["parentId_id"])
data.append(usertup)
print("***********************",data)
cursor.executemany(loondept_sql, data)
conn.commit()
cursor.close()
conn.close()
print("dept更新完成")
else:
print("没有dept同步")
if __name__ == '__main__':
loonuser_insert(typename="user")
loonuser_insert(typename="dept")
猜你喜欢
- 2025-07-27 打工人学Python:(七)自定义函数,打造自己的武器库
- 2025-07-27 【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现
- 2025-07-27 Python绘菊花(用python画朵小菊花)
- 2025-07-27 盘点爬虫语言为何选择Python而不是Java
- 2025-07-27 Java/Go/Python/JS不同语言实现23种经典设计模式
- 2025-07-27 混沌工程开源工具对比(混沌工程开源工具对比分析)
- 2025-07-27 Go 和 Python 程序运行时间比较(go和python哪个好)
- 2025-07-27 手把手带你进行Golang环境配置(golang运行时配置文件目录)
- 2025-07-27 web开发我更喜欢使用GO语言(go适合做web吗)
- 2025-07-27 慢到窒息!没想到未编译Python比Go慢上这么多……
- 289℃Python短文,Python中的嵌套条件语句(六)
- 285℃PythonNet:实现Python与.Net代码相互调用!
- 283℃python笔记:for循环嵌套。end=""的作用,图形打印
- 281℃Python实现字符串小写转大写并写入文件
- 278℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 137℃原来2025是完美的平方年,一起探索六种平方的算吧
- 123℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 115℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)