Variables PyMySQL en consultas

Me gustaría tener una conexión entre mi código python y una base de datos SQL. He leído varias formas de hacerlo, pero no logro obtener los resultados.

conn = pymysql.connect(user=X,passwd=X,host=X,port=X,database=X, charset='utf8', autocommit=True)
curs = conn.cursor()

try:
    curs.execute('SELECT id,sing_name,bir_yr FROM singers_list WHERE bir_yr = ? ',year)
    data = curs.fetchall()       
    for i in data:
        yield " Data: " + str(i) + "<br/>"
except:
    yield " Failed to get data from base<br/>"

Dóndeaño es una variable int python. Estoy obteniendo los resultados adecuados con:

curs.execute('SELECT id,sing_name,bir_yr FROM singers_list)

Lo que significa que me estoy conectando con éxito a la base de datos. ¿Cómo puedo incluir variables en las consultas? (no solo enteros, sino también cadenas o cualquier tipo)

Respuestas a la pregunta(1)

Su respuesta a la pregunta