Warning: Parameter 1 to wp_default_scripts() expected to be a reference, value given in /home/crian734/public_html/blog.kolaborativa/wp-includes/plugin.php on line 601

Warning: Parameter 1 to wp_default_styles() expected to be a reference, value given in /home/crian734/public_html/blog.kolaborativa/wp-includes/plugin.php on line 601
Acessar o banco, de um módulo, no Web2py

Acessar o banco, de um módulo, no Web2py

Estamos desenvolvendo uma aplicação em web2py aqui na x4.

E como estou aprendendo web2py, me deparei com um ‘problema’. Estava desenvolvendo um módulo específico que seria chamado por um controller.

Mas esse módulo gravava um (ou mais) registros no banco de dados. Aí que surgiu o problema:

Com o módulo (na pasta modules), eu não estava conseguindo acessar o banco de dados.

Pesquisei na internet e me deparei com uma forma de fazer, mas não deu muito certo, então mandei um email para a lista Web2Py Brasil e o @rochacbruno me explicou que eu não podia serializar uma instancia da DAL, pois é um socket direto.

Então resolvi, fazendo da seguinte forma:

<models/db.py>

<modules/mymodule.py>

<controllers/default.py>

É isso galera, espero que ajude alguém, assim como me ajudou.

Author Description

r4bugento

Sou Desenvolvedor Web na Agência X4. Rabugento pq dizem que sou rabugento, que reclamo e tal (não acho.... ¬¬). Um dos culpados pela Kolaborativa ;)

There are 4 comments. Add yours

  1. 12th janeiro 2012 | Vinicius Assef says: Responder
    Muito bom! Se fosse uma situação bem simples como a do exemplo, eu não implementaria como classe. Apenas passaria o db como parâmetro para uma função. Essa é uma das vantagens do Python: usar OO só quando é interessante. Obs.: faltou fechar o último parêntese na linha do SQLTABLE. -- Vinicius Assef.
    • 12th janeiro 2012 | @R4bugento says: Responder
      Realmente Python é bastante flexível. É mesmo, esqueci de fechar o parêntese. Valeu!
  2. 12th janeiro 2012 | BRuno says: Responder
    LEgal! essa dica com certeza será bem util! Existe também a possibilidade de você criar a conexão com o db dentro do próprio módulo. Em meu novo projeto estou fazendo desta forma pois assim não preciso ter um "db" conectado em todos os requests por estar em models. Apenas quando preciso eu incio o db com db=DataBase() se quiser olha no github os modulos do http://movu.ca Abraço!
    • 16th janeiro 2012 | @R4bugento says: Responder
      Sakei, interessante também esse jeito de trabalhar com módulos. #Ficadica pra galera ai. Abraços

Join the Conversation