Quando comecei estudar web2py (o que nao faz muito tempo) percebi o quanto ficou facil desenvolver aplicacoes web quando comparado com desenvolvimento em asp (eu desenvolvia em asp kkk), onde se fazia tudo na unha.A forma de programacao MVC no web2py e tao simples que eu acabei complicando as coisas e nao compreendendo como formatar o HTML de uma view com os dados recebidos de um controller. Postei minha duvida no forum web2py-users-brazil e um colega me ajudou a esclarecer o assunto.1a etapa: Model (criar a tabela sqlite)db.define_table('bandas', Field('banda','string', notnull=True,required=True, requires=[IS_NOT_EMPTY(error_message=T('Campo de preenchimento obrigatorio')), IS_NOT_IN_DB(db, 'bandas.banda')]), )2a etapa: Controller (criar a funcao SELECT * FROM BANDAS)def bandas(): b = db().select(db.bandas.ALL) dict(lista=b) # retorno da consulta3a etapa: View (formatando a view para visualizar os dados recebidos pelo controller "bandas")# Criar o arquivo "sua_app/controllers/bandas.html" e formatar o HTML{{extend 'layout.html'}}<table border='1' width='100%'> <tr> <td width='5%'bgcolor='#BFBFBF'><b>ID</b></td> <td width='95%'bgcolor='#BFBFBF'><b>Banda</b></td> </tr>{{ for item in lista: }} # lista do controller <tr> <td>{{=item.id}}</td> <td>{{=item.banda}}</td> </tr>{{ pass }}</table>Pronto, povoe a tabela (de preferencia com bandas de rock n' roll ehehe) e acesse a URL "http://127.0.0.1:8000/sua_app/default/bandas". #!/usr/bin/python# -*- coding: latin-1 -*-import sysfrom PyQt4 import QtGui, QtCoreclass Timer(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.cb1 = QtGui.QCheckBox('CheckBox 01') self.cb1.setObjectName('cb1') self.cb2 = QtGui.QCheckBox('CheckBox 02') self.cb2.setObjectName('cb2') self.cb2.setChecked(True) self.le1 = QtGui.QLineEdit('Estou preenchido') self.le1.setObjectName('le1') self.le2 = QtGui.QLineEdit(self) self.le2.setObjectName('le2') self.vbox = QtGui.QVBoxLayout() self.vbox.addWidget(self.cb1) self.vbox.addWidget(self.cb2) self.vbox.addWidget(self.le1) self.vbox.addWidget(self.le2) self.setLayout(self.vbox) self.show() self.verificaObj() def verificaObj(self): for self.child in self.findChildren(QtGui.QCheckBox): if self.child.checkState() == QtCore.Qt.Unchecked: print self.child.objectName(), u' nao esta checado' for self.child in self.findChildren(QtGui.QLineEdit): if self.child.text() == "": print self.child.objectName(), u' nao esta preenchido'if __name__ == "__main__": # executa apenas se este for o modulo principal App = QtGui.QApplication(sys.argv) frm = Timer() sys.exit(App.exec_()) Passei por aquele problema de customizacao das cores da barra de menu do web2py. A cor dos links e textos e facil de entender como mudar, mas e as cores da barra de menu em si?Segundo usuarios de foruns, existem sites que auxiliam na customizacao da barra de menu do web2py como por exemplo o http://www.stylebootstrap.info/ Porem como o objetivo e sempre aprender como fazer, decidi postar como fazer uma customizacao basica. No forum web2py Brasil, um colega me orientou a usar o developer tools do navegador para descobrir onde esta cada item que eu gostaria de alterar, entao talvez esta seja a dica mais importante aqui, pois realmente funciona. Ex: se voce estiver no chrome com sua app rodando, basta clicar com o botao direito do mouse no corpo da app e selecionar "inspecionar elemento", a partir disto, tudo fica mais facil de ser encontrado.Os padroes da barra de menu do web2py sao:Cor escura da barra de menu;Cor cinza no texto da logo (#c6cecc);Cor cinza no texto do link Home (Principal) / autenticacao do usuario;Cor amarelo nos textos dos itens de menu (#d8d800);Cor escura de fundo nos itens de menu em foco (#111);Cor degrade azul no fundo dos itens de submenu em foco (#08c, #0077b3).Abrir o arquivo web2py_bootstrap.cssNa secao "CUSTOM RULES": Na primeira linha abaixo pode ser alterada a cor do texto da logo, e na segunda linha a cor do texto dos itens de menu em si. Alterei ambas para