Есть ли способ сделать то, что есть в третьем и четвертом экземплярах, по-другому, это не работает - PullRequest
0 голосов
/ 19 июня 2020

Код касается управления заработной платой сотрудников, но мы также пытаемся автоматизировать часть кода, не требуя от пользователя ввода правильного синтаксиса, а только значений, таких как в операторе создания таблицы.

import mysql.connector as mysql
while True: 
print("1.C&L")
print("2.Cursor Define")
print("3.Create Table")
print("4.Insert Data into Table")
a=int(input("Enter Choice(0 to exit)"))
if a==0:
    break
if a==1:
     db=mysql.connect(
         host='localhost',
         user='root',
         passwd='12345',
         database='opip'
     ) 
     print(db)   
if a==2:
    curs=db.cursor()
    print(curs)
if a==3:
    print("CREATE TABLE [table_name] ([column_name] [data_type][data_size])")
    z=input("Type the above syntax with correct variables")
    curs.execute(z)

if a==4:
    x="""INSERT into opip(id,Name,Age,DOB,Position,Salary)VALUES(%s,%s,%s,%s,%s,%s)"""
    data=input("Provide Values") 
    curs.execute(x,data)
    db.commit()

1 Ответ

0 голосов
/ 01 июля 2020

Вы можете выполнить sh это двумя способами

  1. Рекурсивно считывать ввод для каждого из ваших заполнителей [table_name], [column_name], [data_type], [data_size] до тех пор, пока считывается установленный вами конечный флаг.

     table=input("Table Name ")
     columnName=input("Column Name ")
     columnType=input("Column Data Type ")
     columnSize=input("Column Size ")
    
  2. Прочтите все в одном вводе, а затем разделите его на соответствующие типы, чтобы заполнить ваш шаблон

     txt = input()
     values = txt.split()
     dbString = "CREATE TABLE " + values[0] + "(" # Start Syntax
    
     i=1
     while i < len(values):
         dbString += values[i] + " " # Column Name
         i += 1
    
         dbString += values[i] + "(" # Column Data Type
         i += 1
    
         dbString += values[i] + ")" # Column Size
         i += 1
    
         if i < len(values):
           dbString += ", " # prepare for next column details
    
     dbString += ")" # End Syntax
    
     curs.execute(dbString) # Execute Dynamic SQL
    

Для ввода

mytable col1 char 2 col2 char 3

DbString Output

СОЗДАТЬ ТАБЛИЦУ mytable (col1 char (2), символ col2 (3))

...