IDE的python模板
#!/usr/bin/env python
# encoding: utf-8
"""
@author: zcb
@license: (c) Copytright 2017-2019, zcb
@contact: cbzhan@outlook.com
@software: ${PRODUCT_NAME}
@file: ${NAME}.py
@time: ${DATE} ${TIME}
@desc:
"""
import logging
import os
import socket
import mysql.connector
FILE_NAME = os.path.basename(__file__)
FILENAME = os.path.splitext(FILE_NAME)[0]
LOG_NAME = FILENAME + '.log'
log_dir = os.getcwd() + '/log'
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logging.basicConfig(level=logging.DEBUG,
format='[%(asctime)s] %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s',
datefmt='%Y-%b-%d %H:%M:%S %a',
filename=log_dir + '/' + LOG_NAME,
filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(levelname)-s: %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
class ${NAME}:
# env config
DEV_ENV = ('10.0.0.*', '10.1.1.*', '10.2.2.*', '10.4.5.6') # PC, laptop, dev-vm
TEST_ENV = ('192.168.1.1', '172.1.1.2') # jenkins
ONLINE_ENV = ('10.3.4.5', '10.7.8.9') # online jenkins, online API server
# mysql config
DEV_DB = {
'user': 'root',
'password': 'root',
'host': '10.4.5.6',
'port': '3306',
'database': 'test',
'use_unicode': True,
}
# DEV_DB = {
# 'user': 'root',
# 'password': 'root',
# 'host': '10.2.2.2',
# 'port': '3306',
# 'database': 'test',
# 'use_unicode': True,
# }
TEST_DB = {
'user': 'root',
'password': 'root',
'host': '192.168.1.1',
'port': '8306',
'database': 'test',
'use_unicode': True,
}
ONLINE_DB = {
'user': 'root',
'password': 'root',
'host': '10.3.4.5',
'port': '3306',
'database': 'test',
'use_unicode': True,
}
db_config = None
db_connection = None
def __init__(self):
host_ip = self.get_host_ip()
logging.debug('local ip is: %s', host_ip)
self.db_config = self.get_env(host_ip)
logging.debug('use db as: %s', self.db_config['host'])
@staticmethod
def get_host_ip():
""" retrieve local host ip address """
s = socket.socket()
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
@staticmethod
def get_env(host_ip):
""" assign env var according to local ip """
local_host_ip = host_ip
logging.debug('host ip is: %s', local_host_ip)
if local_host_ip in ${NAME}.ONLINE_ENV:
env_db = ${NAME}.ONLINE_DB
elif local_host_ip in ${NAME}.TEST_ENV:
env_db = ${NAME}.TEST_DB
else:
env_db = ${NAME}.DEV_DB
return env_db
def connect_db(self, db_config):
""" this function is used to connect to mysql db using db_config """
mysql_host = db_config['host']
mysql_db = db_config['database']
logging.debug('connecting to mysql %s', mysql_host)
# open mysql connection
self.db_connection = mysql.connector.connect(**db_config)
logging.debug('connected and use db %s', mysql_db)
def close_db(self):
""" this function is used to release db connection after used mysql """
self.db_connection.close()
logging.debug('mysql connection closed')
if __name__ == '__main__':
obj = ${NAME}()
obj.connect_db(obj.db_config)
obj.close_db()
# encoding: utf-8
"""
@author: zcb
@license: (c) Copytright 2017-2019, zcb
@contact: cbzhan@outlook.com
@software: ${PRODUCT_NAME}
@file: ${NAME}.py
@time: ${DATE} ${TIME}
@desc:
"""
import logging
import os
import socket
import mysql.connector
FILE_NAME = os.path.basename(__file__)
FILENAME = os.path.splitext(FILE_NAME)[0]
LOG_NAME = FILENAME + '.log'
log_dir = os.getcwd() + '/log'
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logging.basicConfig(level=logging.DEBUG,
format='[%(asctime)s] %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s',
datefmt='%Y-%b-%d %H:%M:%S %a',
filename=log_dir + '/' + LOG_NAME,
filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(levelname)-s: %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
class ${NAME}:
# env config
DEV_ENV = ('10.0.0.*', '10.1.1.*', '10.2.2.*', '10.4.5.6') # PC, laptop, dev-vm
TEST_ENV = ('192.168.1.1', '172.1.1.2') # jenkins
ONLINE_ENV = ('10.3.4.5', '10.7.8.9') # online jenkins, online API server
# mysql config
DEV_DB = {
'user': 'root',
'password': 'root',
'host': '10.4.5.6',
'port': '3306',
'database': 'test',
'use_unicode': True,
}
# DEV_DB = {
# 'user': 'root',
# 'password': 'root',
# 'host': '10.2.2.2',
# 'port': '3306',
# 'database': 'test',
# 'use_unicode': True,
# }
TEST_DB = {
'user': 'root',
'password': 'root',
'host': '192.168.1.1',
'port': '8306',
'database': 'test',
'use_unicode': True,
}
ONLINE_DB = {
'user': 'root',
'password': 'root',
'host': '10.3.4.5',
'port': '3306',
'database': 'test',
'use_unicode': True,
}
db_config = None
db_connection = None
def __init__(self):
host_ip = self.get_host_ip()
logging.debug('local ip is: %s', host_ip)
self.db_config = self.get_env(host_ip)
logging.debug('use db as: %s', self.db_config['host'])
@staticmethod
def get_host_ip():
""" retrieve local host ip address """
s = socket.socket()
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
@staticmethod
def get_env(host_ip):
""" assign env var according to local ip """
local_host_ip = host_ip
logging.debug('host ip is: %s', local_host_ip)
if local_host_ip in ${NAME}.ONLINE_ENV:
env_db = ${NAME}.ONLINE_DB
elif local_host_ip in ${NAME}.TEST_ENV:
env_db = ${NAME}.TEST_DB
else:
env_db = ${NAME}.DEV_DB
return env_db
def connect_db(self, db_config):
""" this function is used to connect to mysql db using db_config """
mysql_host = db_config['host']
mysql_db = db_config['database']
logging.debug('connecting to mysql %s', mysql_host)
# open mysql connection
self.db_connection = mysql.connector.connect(**db_config)
logging.debug('connected and use db %s', mysql_db)
def close_db(self):
""" this function is used to release db connection after used mysql """
self.db_connection.close()
logging.debug('mysql connection closed')
if __name__ == '__main__':
obj = ${NAME}()
obj.connect_db(obj.db_config)
obj.close_db()
评论
发表评论