#Flask com HTML e CSS

1 messages · Page 1 of 1 (latest)

dense lantern
#

Oi, estou fazendo uma aplicação de lista, na qual, quando tento enviar um dado para adicionar na minha lista, dá uma mensagem de "Method Not Allowed
The method is not allowed for the requested URL."

clever peak
#

@dense lantern o form tem que ser submetido pra rota /criar

dense lantern
#

@clever peak Meu Deus, era isso mesmo!!! MUITO OBRIGADO kkkkk, estava tentando a dias encontrar o erro

dense lantern
#

@clever peak Desculpa incomodar de novo. É que agora eu queria colocar uma função para deletar uma das opções da minha lista, mas eu não faço ideia em como faço isso, teria como me dar alguma luz quanto a isso novamente?

clever peak
#

@dense lantern pra manter simples, vc pode criar uma rota da mesma forma que a rota erro: que receba um parametro na url. por exemplo /deletar/<int:indice> , em que indice vai ser o indice da tarefa na lista

#

nessa rota, vc executa lista.remove(indice) para remover a tarefa

dense lantern
#

Hmmm, bacana, vou tentar, muito obrigado

#

@clever peak Desculpa incomodar mais uma vez, juro que é a última kkkk, mas deu esse erro, parece que o índice não deu

clever peak
#

ah

#

sim, o argumento do remove na real eh pra remover o valor que esta no indice (lista[indice])

vc pode executar del lista[indice]

dense lantern
#

Nossa, deu certoo!!

#

Obrigadão mais uma vez, de verdade

clever peak
#

claro, irmao, qqr coisa grita ae

dense lantern
#

@clever peak Irmão, pode me dar mais um help? Queria agora poder adicionar uma /alterar, para alterar uma tarefa em específico, bati cabeça e não consegui também...
E também botar, na frente da tarefa, o número dela, por exemplo: 1 - Tarefa 1 , 2 - Tarefa 2

clever peak
#

@dense lantern precisa criar uma rota nova, certo?

parecida com a de criar, que recebe informacoes da tarefa.

a diferenca é que em vez de criar, vc quer alterar, entao vc precisa também de uma referencia sobre qual tarefa vc quer alterar.nesse caso funciona como a rota deletar, em que vc informa um indice na URL pra achar a tarefa

dense lantern
#

ok

#

@clever peak Acho que fiz caca ... kkkkkkkk

clever peak
#

mas precisa ajeitar um pouco o funcionamento dessa nova rota

#

esse são os passos que a rota precisa fazer:

@app.route('/alterar/<int:indice>`)
def alterar(indice):
    # checar se o indice existe na lista de tarefas

    # pegar dados do form

    # alterar o objeto que está na posição "indice" com os dados do form
    
    # retornar template
dense lantern
#

ok, muitíssimo obrigado, vou testar aqui

dense lantern
#

@clever peak Deu isso

clever peak
#

indice in lista está checando se tal indice está na lista, mas no sentido de ser um valor incluso na lista. por exemplo:

lista = [20, 10, 30]
10 in lista

é True, pois 10 está na lista

agora, vc quer checar se o indice existe na lista. ou seja, não como um valor, mas algo acessivel via lista[indice]
uma forma de fazer isso é checando se o indice está dentro dos limites da lista, ou seja, entre 0 e len(lista):
if 0 <= indice < len(lista)

#

preciso que vc me explique essa parte do codigo, para ver quais partes vc sacou

dense lantern
clever peak
#

opa

#

beleza

#

entao, request.form['info'] é o nome da tarefa com id indice, certo?

#

e temos uma lista de tarefas

#

o que vc quer é alterar um dos dados que está nessa lista

#

que é lista[indice]

#

entao o que deve ser feito é atribuir o novo nome para a tarefa da lista na posicao indice

#

lista[indice] é um objeto Checklist

#

entao lista[indice].nome é o que deve ser alterado

#

logo

#

lista[indice].nome = request.form['info']

vai pegar o nome que foi enviado pelo form e colocar na tarefa