Preparando o acesso do Scribus ao MySQL

Através da linguagem script embutida no programa de editoração Scribus, podemos fazer uma infinidades de ações. Entre elas, acessar um banco de dados MySQL, pegar dados que interessam e diagramá-los automaticamente numa página.

Por exemplo, podemos fazer uma consulta tipo: “Selecione todas as matérias na editoria de Economia programados para página 11 com data da próxima edição”.

Para facilitar as consultas do Python ao MySQL, existe o módulo MySQLdb. Para facilitar ainda mais o uso deste módulos, pode-se criar uma função genérica de chamada ao MySQL (confira o original para ver a formatação do programa. Python tem um lamentável e infeliz sistema de indentação que pode ser desformatado na Web).

import MySQLdb
 classGenericDBOP:
  def __init__(self, db, name):
    self.db = db #database connection
    self.name = name #table name
    lf.dbc = self.db.cursor() #cursor object
    lf.debug=1

  def __getitem__(self, item):
    self.dbc.execute("select * from %s limit %s, 1" % (self.name, item))
    return self.dbc.fetchone()

  def _query(self, q):
    if self.debug:
    print "Query: %s" % (q)
    self.dbc.execute(q)

  def __iter__(self):
    "creates a data set, and returns an iterator (self)"
    q = "select * from %s"  % (self.name)
    self._query(q)
    return self    # an Iterator is an object
    # with a next() method

  def next(self):
    "returns the next item in the data set, or tells Python to stop"
    r = self.dbc.fetchone()
    if not r:# Ok here error is handled and rethrown
    raise StopIteration
    return r

A classe completa é essa. Agora, para testar:

if __name__==’__main__’:
    db = MySQLdb.connect(user="user", passwd="passwd", db="library")
    books = GenericDBOP (db, "book")
    for i in xrange(80, 100):
    print "Book %s: %s" % (i, books[i])

O autor explica que, desde que __getitem__() foi implementada na classe, podemos acessar o banco de dados como listas Python.

José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.

Share
Published by
José Antonio Meira da Rocha

Recent Posts

Sempre faça um fotão

Colheita de soja. Foto: Wenderson Araujo/Trilux Fotógrafos de mídias rurais já perderam a conta das…

1 year ago

A corrupção dos tolos

João Batista MezzomoAuditor fiscal O que está por trás de tudo o que está acontecendo…

4 years ago

Naomi who? Naomi Wu!

A.k.a. "SexyCyborg". A mulher do século 21. Naomi Wu testa seu iluminador de implantes na…

5 years ago

Raspagem de dados

A principal ferramenta do jornalista de dados é a planilha, tipo LibreOffice Calc, M.S. Excel…

5 years ago

Que estratégia político-terapêutica pára um governo deliroide?

Rita Almeida, 9 de março de 2019 Psicóloga Rita Almeida: não delirantes, mas deliroides. Não…

6 years ago

Sua tia não é fascista, ela está sendo manipulada

Rafael Azzi5 de outubro de 2018 Você se pergunta como um candidato com tão poucas…

6 years ago