Я пытаюсь выполнить имена столбцов из базы данных MySQL, используя Flask. Для этого я создал пользовательский интерфейс, пользователь должен ввести свое имя пользователя и пароль, а также такие данные, как порт, имя базы данных и т. Д. c. Соединение с базой данных успешно установлено.
- Мне нужно получить имя столбца из базы данных
Мой курсор. Выполнение ниже
cursor.execute("select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME= '%s'" %(i))
Мой вывод
{'Employee': ['COLUMN_NAME'], 'Department': ['COLUMN_NAME']}
Ожидаемый выход
| COLUMN_NAME |
+--------------+
| emp_no |
| emp_name |
| age |
пока я выполняю вручную, с mysql select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='employee';
я получил правильный
Использование python версия 3
@app.route('/connections',methods = ['POST', 'GET'])
def db_connections():
if request.method == 'POST':
dbtype = request.form.get('dbtype');
dbuser = request.form.get('dbuser');
dbpw = request.form.get('dbpw');
hname = request.form.get('hname');
hport = request.form.get('hport');
dbname = request.form.get('dbname');
if(dbtype == "MYSQL"):
try:
connection = mysql.connector.connect(user = dbuser,
password = dbpw,
host = hname,
port = hport,
database = dbname)
cursor = connection.cursor(buffered=True)
except (Exception) as error :
print ("Error while connecting to SQL", error)
def get_table_col_names(table_str):
for i in table_str:
cursor.execute("select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME= '%s'" %(i))
col_names = []
for desc in cursor.description:
col_names.append(desc[0])
all_databaselists[i] = col_names
return all_databaselists
cursor.execute("SELECT table_name FROM information_schema.tables WHERE table_type = 'base table' AND table_schema='test'")
records = cursor.fetchall()
print (records)
result = [i[0] for i in records]
all_columns = get_table_col_names(result)
print (all_columns)
cursor.close()
return render_template('connections.html')