Gerando QRCode com Python e SQLite
Quem me conhece, sabe que uma frase que eu sempre digo, é: Para conhecer melhor uma linguagem de programação e realmente estudá-la, uma das melhores formas é desenvolver algo com ela. Nada melhor do que sair da teoria e ir para a prática.
A linguagem Python
Seguindo essa linha de pensamento, comecei a procurar algo para desenvolver com Python, já que sempre ouvi falarem bem sobre essa linguagem e sua crescente popularidade, além de usar diversos programas no Linux feitos com ela, e dela ser uma das bases do Google (junto com o Java), inclusive.
O banco de dados SQLite
A maioria dos softwares que conhecemos, precisa de um banco de dados para funcionar. Então, pensei em aprender como usar Python com um banco de dados, adicionando o SQLite nessa história, para salvar as frases ou links e dar a opção de escolher com qual conteúdo gerar o QRCode. Escolhi o SQLite, por não ter nada mais fácil de se implementar do que ele, para quem irá rodar o software, além de ser incrivelmente prático e a melhor escolha para softwares desse tipo (pequeno porte), por ser um banco de dados em um arquivo que pode ser copiado junto com o código, facilitando o backup, por exemplo.
O que é um QRCode?
QRCode é algo que tem ficado cada vez mais comum nos nossos dias. Você aponta a camera do seu celular pra um QRCode numa revista, jornal, ou até propaganda na parte de trás de uma banca de jornal sobre um novo filme ou seriado, e um software leitor de QRCode no seu celular interpreta essa imagem e te retorna o que ela quer dizer. Pode ser uma frase, um código promocional, um link, etc. No caso da propaganda sobre um novo filme, por exemplo, pode ser o link para você assistir ao trailer do filme no seu celular. No caso de uma propaganda numa revista ou jornal, pode ser um link para você adquirir o produto relacionado através de seu celular, e por aí vai..
Para desenvolver o pyqrcodegenerator, usei um gerador de QRCode encontrado aqui: https://code.google.com/p/pyqrcode/ e desenvolvi o código para automatizar essa geração, primeiramente usando entradas de teclado, depois implementando para usar o conteúdo de um banco de dados, que foi o SQLite.
Apesar de usar o NetBeans para desenvolver com CodeIgniter, estou usando a IDE Aptana Studio para estudar Python.
O código pode não estar na melhor Python way, por se tratar da primeira coisa que eu fiz em Python, e minha base de conhecimento maior ser de PHP. Portanto, aceito críticas construtivas. (Faça um fork no github, se desejar)
O pyqrcodegenerator roda em Linux. Talvez também em outros Unix-like, ou até no Windows (Não cheguei a testar em outros sistemas). Mas sério, você está lendo esse texto e realmente usa Windows? NO PUEDE SER!
Para usar o SQLite com o Python, você deve usar o pysqlite2 ou o sqlite3:
from pysqlite2 import dbapi2 as sqlite
ou
from sqlite3 import dbapi2 as sqlite
em seguida, para conectar ao banco de dados:
connection = sqlite.connect('nomedobanco.db')
Obs: Caso o arquivo não exista, será criado automaticamente.
Para fazermos alguma coisa, definimos um cursor
cursor = connection.cursor()
Com o cursor, podemos usar o método execute(), para exercutarmos nossas queries
cursor.execute('CREATE TABLE sentences (id INTEGER PRIMARY KEY AUTOINCREMENT,sentence TEXT)')
sentence = "This is so easy!"
cursor.execute('INSERT INTO sentences VALUES (null, ?)', [sentence])
O método commit() é utilizado para gravar no banco de dados as modificações
connection.commit()
Obs: existe também um método para rollback
Com o método fetchone(), é retornada uma linha de um SELECT
cursor.execute('SELECT * FROM sentences WHERE id = ?', [select_id])
row = cursor.fetchone()
Com o método fetchall(), são retornadas todas as linhas de um SELECT
cursor.execute('SELECT * FROM sentences')
rows = cursor.fetchall()
for row in rows:
print row[0], '-', row[1] # ID - frase
Para gerar o QRCode com esse conteúdo, do banco de dados, é só pegar o conteúdo de row[1], que é a nossa frase e passar por parâmetro
qr_image = pyqrcode.MakeQRImage(frase_aqui) qr_image.show()
Mais simples, impossível!
Penso em uma evolução futura, criar uma interface com GTK e/ou Qt, para praticar mais.
Também estou aceitando idéias do que desenvolver para continuar praticando.
Para ver o código completo que eu desenvolvi, acesse no Github:
https://github.com/jonathas/pyqrcodegenerator
Fonte que usei para aprender como usar SQLite com Python:
http://www.devshed.com/c/a/Python/Using-SQLite-in-Python/
Related Posts
4 Comentários to Gerando QRCode com Python e SQLite
Leave a Reply
Search
Twitter – @jonathasrr
- to vendo as coisas do ano passado acontecerem de novo, e nem parece que já passou 1 ano.. gente, pra onde a vida tá indo? haha.. #fb - 1 hour ago
- Google Abandons Open Standards for Instant Messaging - ur1.ca/dzsp2 #google #xmpp #jabber #hangouts - 10 hours ago
- The quote. #bsn #hardwork instagram.com/p/ZqXE3cEde_/ - 19 hours ago
- You don't get what you wish for, you get what you work for. #fb - 23 hours ago
- Ruby on Rails or Python/Django? Which one do you prefer and why? #rails #ror #python #django #soudev - 1 day ago
Nettuts+
- Laravel 4: A Start at a RESTful API (Updated)
- The Right Way to Retinafy Your Websites
- How to Create a PyroCMS Theme
- The Linux Firewall
- Tuts+ Premium Cash Back Offer: 3 Days to Go
- How to Write Testable and Maintainable Code in PHP
- Real Time Chat With NodeJS, Socket.io and ExpressJS
- Mass Assignment, Rails, and You
- Master Developers: Addy Osmani
- Learn WordPress Plugin Development with Tuts+ Live Workshops
CatsWhoCode.com
- CSS and JavaScript tools to take your website to the next level
- Useful snippets to protect your WordPress blog against scrapers
- Hacks and snippets to enhance WordPress search engine
- Cross browser compatible HTML5 videos
- Super useful jQuery plugins for responsive web design
- Ultimate list of WordPress resources
- HTML5 code snippets to take your website to the next level
- WordPress snippets, hacks and tips to enhance your comments section
- Modern CSS3 techniques to embellish your website
- Super useful online tools to make JavaScript development easier
Viva o Linux
- Portage: make.conf para Funtoo (make.conf)
- C/C++: Selection sort
- Shell Script: Replicação de arquivos
- myip - Comando que retorna somente o IP
- Instalando Broadcom BCM43 no LinuxMint
- Processo do KWorker consumindo recursos do computador [Resolvido]
- Releitura do arquivo "/etc/fstab" sem reiniciar a máquina
- Lynx - Browser via terminal no GNU/Linux
- Repositórios Multimídia no Debian 7
- Zabbix Server 2.0 no Ubuntu Server 12.04 - Instalação e configuração












Dahora, Jon!
Quer dizer então que para eu enviar minha base de dados para algum amigo preciso apenas passar para ele o arquivo “qrcodegenerator.db” ?
Abraço
Valeu! Sim. Nem precisa de senha, nem nada..
This arictle is a home run, pure and simple!
Oi, Jonathas! Por acaso achei teu blog na lista startup-brasil. Nós não fazemos curso de Espanhol juntos? haha Que coincicência. Abçs.