Advertisement
MizunoBrasil

gerador crud-php em python

Jun 22nd, 2023
2,480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.29 KB | None | 0 0
  1. #código está errado mas layout está ok
  2.  
  3. import tkinter as tk
  4. from tkinter import ttk
  5. from tkinter import messagebox
  6.  
  7.  
  8. def adicionar_campo():
  9.     global num_campos
  10.     num_campos += 1
  11.  
  12.     # Label campo
  13.     label_campo = ttk.Label(frame_campos, text=f'Campo {num_campos}:')
  14.     label_campo.grid(row=num_campos, column=0, pady=5)
  15.  
  16.     # Campo texto
  17.     campo_texto = ttk.Entry(frame_campos)
  18.     campo_texto.grid(row=num_campos, column=1, pady=5)
  19.  
  20.     campos_texto.append(campo_texto)
  21.  
  22.     # Combobox tipo de dado
  23.     tipo_var = tk.StringVar()
  24.     tipo_combobox = ttk.Combobox(frame_campos, textvariable=tipo_var, values=tipos_dados)
  25.     tipo_combobox.grid(row=num_campos, column=2, pady=5)
  26.  
  27.     tipo_vars.append(tipo_var)
  28.  
  29.  
  30. def gerar_crud():
  31.     nome_tabela = campo_tabela.get()
  32.     campos = zip([campo.get() for campo in campos_texto], [tipo.get() for tipo in tipo_vars])
  33.  
  34.     # Gerar arquivo cadastrar_nome_da_tabela.php
  35.     nome_arquivo_cadastrar = f"cadastrar_{nome_tabela}.php"
  36.     with open(nome_arquivo_cadastrar, 'w') as cadastrar_file:
  37.         cadastrar_file.write('<?php\n')
  38.         cadastrar_file.write('include "dbconfig.php";\n')
  39.         cadastrar_file.write(f'// Verificar se o formulário foi enviado\n')
  40.         cadastrar_file.write(f'if ($_SERVER["REQUEST_METHOD"] == "POST") {{\n')
  41.         cadastrar_file.write(f'    // Recuperar dados do formulário\n')
  42.         for campo, _ in campos:
  43.             cadastrar_file.write(f'    ${campo} = $_POST["{campo}"];\n')
  44.         cadastrar_file.write(f'    // Inserir dados no banco de dados\n')
  45.         cadastrar_file.write(f'    $sql = "INSERT INTO {nome_tabela} (')
  46.         cadastrar_file.write(', '.join([campo for campo, _ in campos]))
  47.         cadastrar_file.write(f') VALUES (')
  48.         cadastrar_file.write(', '.join([f'\'${campo}\'' for campo, _ in campos]))
  49.         cadastrar_file.write(')";\n')
  50.         cadastrar_file.write(f'    if (mysqli_query($con, $sql)) {{\n')
  51.         cadastrar_file.write(f'        echo "Registro cadastrado com sucesso.";\n')
  52.         cadastrar_file.write(f'    }} else {{\n')
  53.         cadastrar_file.write(f'        echo "Erro ao cadastrar o registro: " . mysqli_error($con);\n')
  54.         cadastrar_file.write(f'    }}\n')
  55.         cadastrar_file.write(f'}}\n')
  56.         cadastrar_file.write('?>\n')
  57.  
  58.     # Gerar arquivo editar_nome_da_tabela.php
  59.     nome_arquivo_editar = f"editar_{nome_tabela}.php"
  60.     with open(nome_arquivo_editar, 'w') as editar_file:
  61.         editar_file.write('<?php\n')
  62.         editar_file.write('include "dbconfig.php";\n')
  63.         editar_file.write(f'// Verificar se o formulário foi enviado\n')
  64.         editar_file.write(f'if ($_SERVER["REQUEST_METHOD"] == "POST") {{\n')
  65.         editar_file.write(f'    // Recuperar dados do formulário\n')
  66.         for campo, _ in campos:
  67.             editar_file.write(f'    ${campo} = $_POST["{campo}"];\n')
  68.         editar_file.write(f'    // Atualizar dados no banco de dados\n')
  69.         editar_file.write(f'    $sql = "UPDATE {nome_tabela} SET ')
  70.         editar_file.write(', '.join([f'{campo}=\'${campo}\'' for campo, _ in campos]))
  71.         editar_file.write(f' WHERE id=$id";\n')
  72.         editar_file.write(f'    if (mysqli_query($con, $sql)) {{\n')
  73.         editar_file.write(f'        echo "Registro atualizado com sucesso.";\n')
  74.         editar_file.write(f'    }} else {{\n')
  75.         editar_file.write(f'        echo "Erro ao atualizar o registro: " . mysqli_error($con);\n')
  76.         editar_file.write(f'    }}\n')
  77.         editar_file.write(f'}} else {{\n')
  78.         editar_file.write(f'    // Recuperar ID do registro\n')
  79.         editar_file.write(f'    $id = $_GET["id"];\n')
  80.         editar_file.write(f'    // Consultar registro no banco de dados\n')
  81.         editar_file.write(f'    $sql = "SELECT * FROM {nome_tabela} WHERE id=$id";\n')
  82.         editar_file.write(f'    $result = mysqli_query($con, $sql);\n')
  83.         editar_file.write(f'    $row = mysqli_fetch_array($result);\n')
  84.         editar_file.write(f'}}\n')
  85.         editar_file.write('?>\n')
  86.         editar_file.write('<!DOCTYPE html>\n')
  87.         editar_file.write('<html>\n')
  88.         editar_file.write('<body>\n')
  89.         editar_file.write('    <form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">\n')
  90.         for campo, tipo in campos:
  91.             editar_file.write(f'        <label for="{campo}">{campo}:</label><br>\n')
  92.             if tipo == 'Text':
  93.                 editar_file.write(f'        <input type="text" name="{campo}" value="<?php echo $row["{campo}"]; ?>"><br><br>\n')
  94.             elif tipo == 'Number':
  95.                 editar_file.write(f'        <input type="number" name="{campo}" value="<?php echo $row["{campo}"]; ?>"><br><br>\n')
  96.             elif tipo == 'Email':
  97.                 editar_file.write(f'        <input type="email" name="{campo}" value="<?php echo $row["{campo}"]; ?>"><br><br>\n')
  98.         editar_file.write('        <input type="submit" value="Atualizar">\n')
  99.         editar_file.write('    </form>\n')
  100.         editar_file.write('</body>\n')
  101.         editar_file.write('</html>\n')
  102.  
  103.     # Gerar arquivo visualizar_nome_da_tabela.php
  104.     nome_arquivo_visualizar = f"visualizar_{nome_tabela}.php"
  105.     with open(nome_arquivo_visualizar, 'w') as visualizar_file:
  106.         visualizar_file.write('<?php\n')
  107.         visualizar_file.write('include "dbconfig.php";\n')
  108.         visualizar_file.write(f'// Consultar registros no banco de dados\n')
  109.         visualizar_file.write(f'$sql = "SELECT * FROM {nome_tabela}";\n')
  110.         visualizar_file.write(f'$result = mysqli_query($con, $sql);\n')
  111.         visualizar_file.write('?>\n')
  112.         visualizar_file.write('<!DOCTYPE html>\n')
  113.         visualizar_file.write('<html>\n')
  114.         visualizar_file.write('<body>\n')
  115.         visualizar_file.write('    <table>\n')
  116.         visualizar_file.write('        <tr>\n')
  117.         for campo, _ in campos:
  118.             visualizar_file.write(f'            <th>{campo}</th>\n')
  119.         visualizar_file.write('        </tr>\n')
  120.         visualizar_file.write('<?php while ($row = mysqli_fetch_array($result)) { ?>\n')
  121.         visualizar_file.write('        <tr>\n')
  122.         for campo, _ in campos:
  123.             visualizar_file.write(f'            <td><?php echo $row["{campo}"]; ?></td>\n')
  124.         visualizar_file.write('        </tr>\n')
  125.         visualizar_file.write('<?php } ?>\n')
  126.         visualizar_file.write('    </table>\n')
  127.         visualizar_file.write('</body>\n')
  128.         visualizar_file.write('</html>\n')
  129.  
  130.     messagebox.showinfo("Sucesso", "CRUD gerado com sucesso!")
  131.  
  132.  
  133. # Configuração da janela principal
  134. root = tk.Tk()
  135. root.title("Gerador CRUD")
  136. root.geometry("400x300")
  137.  
  138. # Variáveis globais
  139. num_campos = 0
  140. campos_texto = []
  141. tipo_vars = []
  142. tipos_dados = ['Text', 'Number', 'Email']
  143.  
  144. # Frame para os campos
  145. frame_campos = ttk.Frame(root)
  146. frame_campos.pack(pady=10)
  147.  
  148. # Campo Tabela
  149. label_tabela = ttk.Label(frame_campos, text="Nome da Tabela:")
  150. label_tabela.grid(row=0, column=0, pady=5)
  151.  
  152. campo_tabela = ttk.Entry(frame_campos)
  153. campo_tabela.grid(row=0, column=1, pady=5)
  154.  
  155. # Botões
  156. botao_adicionar = ttk.Button(root, text="Adicionar Campo", command=adicionar_campo)
  157. botao_adicionar.pack(pady=5)
  158.  
  159. botao_gerar = ttk.Button(root, text="Gerar CRUD", command=gerar_crud)
  160. botao_gerar.pack(pady=5)
  161.  
  162. # Loop principal da janela
  163. root.mainloop()
  164.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement