¿Cómo llenar SELECT con PYTHON?
Llenar SELECT con PYTHON. En este articulo daremos como ejemplo 3 alternativas para que puedas poblar una lista desplegable en el lenguaje PYTHON.
Rellenar SELECT con PYTHON
Para llenar un select necesitamos valores estáticos o valores que sean extraídos desde una base de datos. En estos ejemplos lo que haremos será extraer información de base de datos pudiendo ser MySQL o SQLITE.
Primera forma: mysql.connector
De una manera sencilla podemos interactuar con la base de datos para extraer la información y llenar la lista desplegable.
def combo_input():
conn = mysql.connector.connect(host = "localhost", user = "test",passwd = "test", db = "test")
cursor = conn.cursor()
cursor.execute("SELECT nom FROM test")
result=cursor.fetchall()
return result
combo_list = ttk.Combobox(Product)
combo_list['value'] = combo_input()
combo_list.pack()
Segunda Forma: Rellenar ComboBox desde MYSQL.
Otra opción es rellenar usando las siguientes líneas de código Python. Veamos el ejemplo a continuación.
from tkinter import *
from tkinter import ttk
from tkinter.ttk import Combobox
import tkinter.messagebox as mb
from tkinter import messagebox
import sqlite3
def conectarmundo():
miConeccion=sqlite3.connect("Mundo")
miCursor=miConeccion.cursor()
try:
miCursor.execute('''
CREATE TABLE DATOSMUNDO (ID INTEGER PRIMARY KEY AUTOINCREMENT,
PAIS VARCHAR(20),
CONTINENTE VARCHAR(150))
''')
messagebox.showinfo("BDD", "BDD creada con EXITO!")
except:
messagebox.showwarning("¡Atencion!", "La BDD yá existe")
conexion.commit()
def coneccionpaises():
miConeccion=sqlite3.connect("Mundo")
miCursor=miConeccion.cursor()
miCursor.execute("SELECT PAIS FROM DATOSMUNDO")
result=miCursor.fetchall()
return result
miConeccion.commit()
root = Tk()
root.geometry("500x500")
miTipo=StringVar()
combo_list = Combobox(root, textvariable=miTipo, values=coneccionpaises()).place(x=130, y=245)
conecmontajes=Button(root, text="Conectar", command=conectarmundo, height=0, relief="raised", borderwidth=1, bg="azure2", fg="firebrick1",
font=("Calibri", 12, "bold")).place(x=150, y=280)
root.mainloop()
Tercera forma: Poblar combobox con base de datos SQLite
Tendremos que realizar una consulta SQL y devolver todos los registros de la tabla personal en la etiqueta SELECT
def conectbd(self,query):
with sqlite3.connect(self.db_nombre) as conn:
cursor = conn.cursor()
cursor.execute("SELECT * FROM Personal")
result=cursor.fetchall()
cursor.commit()
return result
def combo_input(self):
query = 'SELECT nombre FROM Personal'
db_rows = self.run_query(query)
data=[]
for rows in db_rows:
data.append(rows[0])
return data
Conclusión
En este articulo hemos explicado 3 formas para llenar un SELECT en el lenguaje PYTHON usando base de datos. Espero que esta corta explicación les ayude en sus proyectos web.