Db..tabela.insert, como fazer a verificação

10 views
Skip to first unread message

IFSUL Bagé TCCs

unread,
Jul 25, 2019, 10:06:59 AM7/25/19
to web2py-users-brazil
Ola sou novo aqui e estou com uns problemas no w2p, não trabalhava com python até uns dois meses atrás mas agr tenho que trabalhar daí estou usando essa framework e estou com alguns problemas do tipo eu faço tipo db.auth_user.insert(e-mail = request.vars.email) funciona só que eu gostaria de saber se tem alguma forma de verifica se esse e-mail foi inserido com sucesso usando alguma condicional etc. Desde já agradeço abraços

Carlos Costa

unread,
Jul 25, 2019, 11:02:50 AM7/25/19
to web2py-us...@googlegroups.com
se der algum problema na inserção vai gerar um ticket (erro) e a transação será desfeita.
Então não tem tanta necessidade de checar se inseriu.

mas de qualquer forma se você achar necessário checar é só fazer um consulta

email_cont = db(db.auth_user.e_mail==request.vars.email).count()
if email_cont > 0:
    # email foi inserido


Em qui, 25 de jul de 2019 às 11:07, IFSUL Bagé TCCs <yuril...@gmail.com> escreveu:
Ola sou novo aqui e estou com uns problemas no w2p, não trabalhava com python até uns dois meses atrás mas agr tenho que trabalhar daí estou usando essa framework e estou com alguns problemas do tipo eu faço tipo db.auth_user.insert(e-mail = request.vars.email) funciona só que eu gostaria de saber se tem alguma forma de verifica se esse e-mail foi inserido com sucesso usando alguma condicional etc. Desde já agradeço abraços

--
Você está recebendo esta mensagem porque se inscreveu no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-br...@googlegroups.com.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/web2py-users-brazil/08b32d89-311e-4a09-b12e-804116ef6158%40googlegroups.com.


--
At.

Carlos J. Costa
--------------------------------------------------------------
Cientista da Computação - Esp. Gestão em Telecom

Kimus

unread,
Jul 25, 2019, 1:19:30 PM7/25/19
to web2py-users-brazil
Bem ainda tenho outra duvida, não sei se deveria criar outro post soui novo no grupo então ja fica a questão ai ?

a minha outra duvida é a seguinte eu tenho esse trecho de codigo

email = request.vars.email
senha = db.auth_user.password.requires[0](request.vars.senha)[0]
sobrenome =request.vars.sobrenome
nome = request.vars.nome
if email != " " or senha != " " or sobrenome != " " or nome != " ":
form = db.auth_user.insert(email=email,password=senha,first_name=nome,last_name=sobrenome)
email_cont = db(db.auth_user.email == email).count()
if email_cont > 0:
session.flash = "registro inserido com sucesso"
redirect(URL(c='template',f='login'))
else:
response.flash = "Não foi possivel inserir o registro"
else:
redirect(URL(c='template',f='login'))
return dict(mensagem=" ")

o problema é que quando vou pro index ele redireciona direto pro link do login e salva todos os itens da tabela como none, tipo ele cadastra td como none e redireciona direto pro login, teria como resolver isso ?

Carlos Costa

unread,
Jul 29, 2019, 10:30:51 AM7/29/19
to web2py-us...@googlegroups.com
Isso acontece porque o web2py trabalha com postback.
Quer dizer que você acessa a página primeiramente com um GET, e quando envia o form, dá um POST na mesma url.
Por esse motivo seu controller tem que ter uma lógica para diferenciar o que deve ser feito no momento do GET e o que deve ser feito no momento do POST.

geralmente assim:

def meu_controller():
   form = SQLFORM(...).process()
   if form.accepted:
      # aqui vem o código do POST que é executado somente quando o form é validado

    return dict(...)


--
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-br...@googlegroups.com.

Tito Garrido

unread,
Jul 29, 2019, 5:39:30 PM7/29/19
to web2py-us...@googlegroups.com
Se o seu registro foi inserido com sucesso ele vai retornar o ID do novo registro.

On Thu, Jul 25, 2019 at 11:07 AM IFSUL Bagé TCCs <yuril...@gmail.com> wrote:
Ola sou novo aqui e estou com uns problemas no w2p, não trabalhava com python até uns dois meses atrás mas agr tenho que trabalhar daí estou usando essa framework e estou com alguns problemas do tipo eu faço tipo db.auth_user.insert(e-mail = request.vars.email) funciona só que eu gostaria de saber se tem alguma forma de verifica se esse e-mail foi inserido com sucesso usando alguma condicional etc. Desde já agradeço abraços

--
Você está recebendo esta mensagem porque se inscreveu no grupo "web2py-users-brazil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-br...@googlegroups.com.


--

Linux User #387870
.........____
.... _/_õ|__|
..º[ .-.___.-._| . . . .
.__( o)__( o).:_______

Kimus

unread,
Jul 30, 2019, 10:55:30 AM7/30/19
to web2py-us...@googlegroups.com
Bem, é que o insert não tem esse método de verificação como tem o SQLFORM()  e eu não posso utilizar o SQLFORM pq ele gera um formularoo, só que como uso template eu já tenho o formulário então eu só pego os dados que vem de lá , teria algum forma de evitar que o método postagem seja enviado nulo 

--
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-br...@googlegroups.com.

Carlos Costa

unread,
Aug 5, 2019, 11:18:50 AM8/5/19
to web2py-us...@googlegroups.com
Separe em duas funções, uma para get, outra para post ou em apenas uma, você pode verificar o método no request.

if request.method == 'GET':
ou
if request.method == 'POST':

Reply all
Reply to author
Forward
0 new messages