Explorar el Código

python支持达梦

Roc hace 3 meses
padre
commit
edad7994a7
Se han modificado 2 ficheros con 14 adiciones y 4 borrados
  1. 11 4
      services/base_from_python.go
  2. 3 0
      utils/config.go

+ 11 - 4
services/base_from_python.go

@@ -172,17 +172,24 @@ func getPythonFileAbsolutePath(edbCode string) (pythonFile string, err error) {
 // getPythonFrontStr 获取python前面的代码
 func getPythonFrontStr() string {
 	//return "#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nimport json\n\nimport pymysql\nimport pandas as pd\n\nsql_config = {\n    'host': 'rm-uf67kg347rhjfep5c1o.mysql.rds.aliyuncs.com',\n    'port': 3306,#主机号\n    'user': 'hz_technology',#账户名\n    'passwd': 'hongze@2021',#密码\n    'db': 'test_hz_data',\n    'charset': 'utf8mb4',\n    'cursorclass': pymysql.cursors.DictCursor\n}\n\ndb = pymysql.connect(**sql_config)\ndb.autocommit(1)\ncursor = db.cursor()\npandas_fetch_all = pd.read_sql\n\n# 返回数据\nresult = {}\n\n# 格式化返回数据\ndef format_data(data: pd.DataFrame,\n                index_str: str = \"data_time\",\n                value_str: str = \"value\"\n                ) -> pd.DataFrame:\n    \"\"\"\n        Parameters\n        ----------\n        data : pandas的DataFrame数据结构.\n        index_str : 对象下标字符串,在pandas的DataFrame中的列名.\n        value_str : 对象值字符串,在pandas的DataFrame中的列名\n\n        Returns\n        -------\n        DataFrame or Iterator[DataFrame]\n        例子:{'2007-01-09': 3220.0, '2007-01-10': 3230.0}\n\n        \"\"\"\n    index_list = []  # 空列表\n    value_list = []  # 空列表\n\n    for num in range(1, data.index.size):  # 迭代 所有的指标\n        index_list.append(data[index_str][num])\n        value_list.append(data[value_str][num])\n\n    tmp_data = {\n        \"date\": index_list,\n        \"value\": value_list\n    }\n    pd_data = pd.DataFrame(tmp_data)\n    # print(pd_data)\n    return pd_data\n"
-	str := fmt.Sprintf("#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nimport json\n\nimport pymysql\nimport pandas as pd\nfrom pymongo import MongoClient\nimport pytz\n\nsql_config = {\n    'host': '%s',\n    'port': 3306,#主机号\n    'user': '%s',#账户名\n    'passwd': '%s',#密码\n    'db': '%s',\n    'charset': 'utf8mb4',\n    'cursorclass': pymysql.cursors.DictCursor\n}\n\ndb = pymysql.connect(**sql_config)\ndb.autocommit(1)\ncursor = db.cursor()\npandas_fetch_all = pd.read_sql\n\n", utils.PYTHON_MYSQL_HOST, utils.PYTHON_MYSQL_USER, utils.PYTHON_MYSQL_PASSWD, utils.PYTHON_MYSQL_DB)
+	codeStr := ``
+	switch utils.DbDriverName {
+	case `dm`:
+		codeStr = fmt.Sprintf("#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nimport json\n\nimport dmPython\nimport pandas as pd\nfrom pymongo import MongoClient\nimport pytz\n\nproperties = %s\n\ndb = dmPython.connect(**properties)\ncursor = db.cursor()\npandas_fetch_all = pd.read_sql\n\n", utils.PYTHON_DM_CONNECT_PARAM)
+	default:
+		codeStr = fmt.Sprintf("#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nimport json\n\nimport pymysql\nimport pandas as pd\nfrom pymongo import MongoClient\nimport pytz\n\nsql_config = {\n    'host': '%s',\n    'port': 3306,#主机号\n    'user': '%s',#账户名\n    'passwd': '%s',#密码\n    'db': '%s',\n    'charset': 'utf8mb4',\n    'cursorclass': pymysql.cursors.DictCursor\n}\n\ndb = pymysql.connect(**sql_config)\ndb.autocommit(1)\ncursor = db.cursor()\npandas_fetch_all = pd.read_sql\n\n", utils.PYTHON_MYSQL_HOST, utils.PYTHON_MYSQL_USER, utils.PYTHON_MYSQL_PASSWD, utils.PYTHON_MYSQL_DB)
+
+	}
 
 	// mongo部分
 	if utils.PYTHON_MONGO_HOST != `` {
-		str += getPythonFront2Str()
+		codeStr += getPythonFront2Str()
 	}
 
 	// 格式化数据部分
-	str += getPythonFront3Str()
+	codeStr += getPythonFront3Str()
 
-	return str
+	return codeStr
 }
 
 // getPythonFront2Str

+ 3 - 0
utils/config.go

@@ -23,6 +23,7 @@ var (
 	PYTHON_MYSQL_USER           string // python数据库链接账号
 	PYTHON_MYSQL_PASSWD         string // python数据库链接密码
 	PYTHON_MYSQL_DB             string // python数据库链接数据库名
+	PYTHON_DM_CONNECT_PARAM     string // python链接达梦数据库的参数
 	PYTHON_MONGO_HOST           string // python链接mongo主机地址
 	PYTHON_MONGO_DATABASE       string // python链接mongo的库名
 	PYTHON_MONGO_AUTH_MECHANISM string // python认证机制
@@ -162,6 +163,8 @@ func init() {
 	PYTHON_MYSQL_PASSWD = config["python_mysql_passwd"]
 	PYTHON_MYSQL_DB = config["python_mysql_db"]
 
+	PYTHON_DM_CONNECT_PARAM = config["python_dm_connect_param"] // python链接达梦数据库的参数
+
 	PYTHON_MONGO_HOST = config["python_mongo_host"]                     // python链接mongo主机地址
 	PYTHON_MONGO_DATABASE = config["python_mongo_db"]                   // python链接mongo的库名
 	PYTHON_MONGO_AUTH_MECHANISM = config["python_mongo_auth_mechanism"] // python链接认证机制