2

I'm using flask do build an web application, and one point is a form to get values as follow:

Pattern.html

{% extends "base.html" %}
{% block body %}

<form action="/patterns" method="post"  enctype="multipart/form-data" >
   <div class="form-group">
     <label for="pattern_name">Nome do padrão</label>
     <input class="form-control" id="pattern_name_input" name="pattern_name_input"  aria-describedby="pattern_name_help" placeholder="Nome do Padrão" required="required" >
     <small id="pattern_name_help" class="form-text text-muted">Nome do padrão. Este valor será usado como entrada no dataframe.</small>
   </div>
   <div class="form-group">
      <label for="pattern_head">Inicio do Padrão</label>
      <input class="form-control" id="pattern_head_input" name="pattern_head_input" aria-describedby="pattern_head_help" placeholder="Início do padrão" >
      <small id="pattern_head_help" class="form-text text-muted">Início do padrão. O padrão será composto por inicio+meio+fim.</small>
    </div>
    <div class="form-group">
      <label for="pattern_middle">Meio do Padrão</label>
      <input class="form-control" id="pattern_middle_input" name="pattern_middle_input" aria-describedby="pattern_middle_help" placeholder="Meio do Padrão" >
      <small id="pattern_middle_help" class="form-text text-muted">Meio do padrão. O padrão será composto por inicio+meio+fim.</small>
    </div>
    <div class="form-group">
      <label for="pattern_tail">Fim do Padrão</label>
      <input class="form-control" id="pattern_tail_input" name="pattern_tail_input" aria-describedby="pattern_tail_help" placeholder="Fim do Padrão" >
      <small id="pattern_tail_help" class="form-text text-muted">Fim do padrão. O padrão será composto por inicio+meio+fim.</small>
    </div>
   <button type="submit" class="btn btn-primary">Adicionar</button>
 </form>
{% endblock %}

And on back-end side i have de follow:

app.py

@app.route('/patterns',methods = ['POST', 'GET'])
def default_patterns():

    if request.method == 'POST':
        default_value = ''
        pattern_name = request.values.get('pattern_name_input', default_value)
        pattern_head = request.values.get('pattern_head_input', default_value)
        pattern_middle = request.values.get('pattern_middle_input', default_value)
        pattern_tail = request.values.get('pattern_tail_input', default_value)

        P_Find.set_new_pattern(pattern_name, pattern_head, pattern_middle, pattern_tail)
        default_params  = P_Find.get_default_params()
        flash("Novo padrão adicionado","info")
        return render_template('default_patterns.html', zippado=default_params)

I get the correct value in this way, but the problem is when I put a space character in the content of the forms, i receive only the first portion of text before the space. How can I get the text in the correct way?

Juliano Oliveira
  • 868
  • 1
  • 9
  • 29

1 Answers1

3

The problem is in the way to present this value, previous I had that:

   {% for n, h, m, t in zippado %}
      <fieldset>
         <legend>{{ n }}</legend>
         <input type="text" value={{ h }} readonly>
         <input type="text" value={{ m }} readonly>
         <input type="text" value={{ t }} readonly><br><br>
      </fieldset>
   {% endfor %}

I just put ' in the value field and worked

   {% for n, h, m, t in zippado %}
      <fieldset>
         <legend>{{ n }}</legend>
         <input type="text" value='{{ h }}' readonly>
         <input type="text" value='{{ m }}' readonly>
         <input type="text" value='{{ t }}' readonly><br><br>
      </fieldset>
   {% endfor %}
Juliano Oliveira
  • 868
  • 1
  • 9
  • 29