Я пытаюсь написать код, который подключается к серверу БД и распечатывает список серверов на основе пользовательского ввода. У меня проблемы с доступом к выводу базы данных. Я также хотел бы получить предложения о любых способах улучшения следующего кода.
import mysql.connector
mysql_user = "user"
mysql_pw = "password"
mysql_host = "host"
conn = None
try:
conn = mysql.connector.connect(host=mysql_host, user=mysql_user, password=mysql_pw, database="unixhosts", charset="ascii")
print('Connected to mysql at host')
cursor = conn.cursor()
except Exception as x:
print("Connection failed. Reason : " + str(x))
exit(2)
class GenerateList:
def __init__(self, os, version):
self.os = os
self.version = version
self.query = str("SELECT s.system_name FROM systems s JOIN patch_stat p on s.system_id = p.system_id WHERE s.is_alive = 'Y' AND p.os = " + "'" + str(os) + "'" + " AND p.os_version LIKE " + "'" + str(version) + "%'" + ";")
self.output = ""
def generate_list(self):
#print(self.query)
cursor.execute(self.query)
return (x for x in cursor)
if __name__ == '__main__':
try:
os = input("Enter OS name. Valid OS are 'RHEL' 'CentOS' 'SuSE'")
os_ver = input("Enter OS version: ")
output = GenerateList(os, os_ver)
print(output)
#output.generate_list()
output = None
except Exception as x:
print("Error processing request. Reason: " + str(x))
cursor.close()
conn.close()
exit()