Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

capturar data no HTML

Pessoal, embora não seja o foco, eu não acho na internet algo que solucione meu problema. Como eu faço para capturar datas no html e transformar no python?

@app.route('/cars/novo', methods=['GET','POST'])
def addCarro():
    if request.method == 'POST':
        marca = request.form['marca']
        modelo = request.form['modelo']
        placa = request.form['placa']
        motivo = request.form['motivo']
        situacao = request.form['situacao']
        # HERE I GOT THE PROBLEM
        data_apreensao = request.form['data_apreensao']
        data_apreensao = datatime.strftime(data_apreensao)
        print (data_apreensao)
        carros.append(Apreensao(marca,modelo, placa, motivo, situacao))
        return redirect('/cars')     
    return render_template('apreensaoForm.html', titulo='Nova Apreensao')
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="../static/bootstrap/css/bootstrap.css">   
    <title>Formulário de Apreensao</title>
</head>
<body>
    <div class="container">
      <div class="page-header">
          <h1>{{ titulo }}</h1>
      </div>
      <form action="/cars/novo" method="post">
        <fieldset>
          <div class="form-group">
            <label for="marca">marca</label>
            <input type="text" id="marca" name="marca" class="form-control">
          </div>

          <div class="form-group">
            <label for="modelo">modelo</label>
            <input type="text" id="modelo" name="modelo" class="form-control">
          </div>

          <div class="form-group">
            <label for="placa">placa</label>
            <input type="text" id="placa" name="placa" class="form-control">
          </div>

          <div class="form-group">
            <label for="data-apreensao">data da apreensão</label>
            <input type="date" id="data-apreensao" name="data-apreensao" class="form-control" placeholder="DD-MM-YYYY">
          </div>

          <div class="form-group">
            <label for="motivo">motivo</label>
            <input type="text" id="motivo" name="motivo" class="form-control">
          </div>

          <div class="form-group">
            <label for="situacao">situação</label>
            <input type="text" id="situacao" name="situacao" class="form-control">
          </div>

          <button type="submit" class="btn btn-primary btn-salvar">Salvar</button>
        </fieldset>
      </form>
    </div>
</body>
</html>
3 respostas
solução!

Eu já fiz algumas correções.

O html ficou :

 <div class="form-group">
            <label for="data-apreensao">data da apreensão</label>
            <input type="date" id="data-apreensao" name="data_apreensao" class="form-control" 
            format="dd/mm/yyyy" placeholder="DD-MM-YYYY">
          </div>

E o python :

@app.route('/cars/novo', methods=['GET','POST'])
def addCarro():
    if request.method == 'POST':
        marca = request.form['marca']
        modelo = request.form['modelo']
        placa = request.form['placa']
        motivo = request.form['motivo']
        situacao = request.form['situacao']
        # HERE I GOT THE PROBLEM
        #data_apreensao = datetime.datetime.strptime(request.form['data_apreensao'], '%d, %m, %Y')
        data_apreensao = datetime.strptime(request.form['data_apreensao'], '%d, %m, %Y')
        print ('carai')
        print data_apreensao
        carros.append(Apreensao(marca,modelo, placa, motivo, situacao))
        return redirect('/cars')     
    return render_template('apreensaoForm.html', titulo='Nova Apreensao')

Mas agora, estou tendo o erro:

ValueError: time data '2017-11-30' does not match format '%d, %m, %Y'

tenta isso.

#("%d,%m,%Y") /("%d/%m/%Y"),("%d-%m-%Y") e etc
 data_apreensao = datetime.strptime(request.form['data_apreensao'], "%Y-%m-%d").strftime("%d,%m,%Y")

Deu certo aqui. Obrigado