0

I am using flask with this code:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')
def home(): 
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True, port=8000)
<form method="GET">
        <p>Phone number:</p>
        <input name="phone_number" type="number">
        <br><br>
        <input type="submit">
    </form>

I want to be able to use the inputted phone number text as a variable in my python code when it is submitted. How do I do that?

Sour
  • 1
  • 2

2 Answers2

0

phonenr = request.form.get('phone_number')

0

I suggest you to use flask forms. I give simple example here. It has simple usage syntax. forms.py includes your form elements with its requriements, create_task.html is a template which includes your html codes and form elements. Also views.py include your router function.

forms.py file:

from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField, DateField, SubmitField
from wtforms.validators import DataRequired


class CreateTaskForm(FlaskForm):
    title = StringField('Title', validators=[DataRequired()])
    content = TextAreaField('Content', validators=[DataRequired()])
    expected_dead_line = DateField('Expected Dead Line', validators=[DataRequired()])
    submit = SubmitField('Save It')

create_task.html


<form action="" method="POST">
    {{ form.hidden_tag() }}
    <div class="row">
        <div class="col-12 mb-4">
            <div class="form-outline">
                {{ form.title(class='form-control', placeholder='Title') }}
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-12 mb-4">
            <div class="form-outline">
                {{ form.content(class='form-control', placeholder='Content', rows=8) }}
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-4 mb-4">
            <div class="form-outline">
                <label>Expected Dead Line</label>
            </div>
        </div>
        <div class="col-8 mb-4">
            <div class="form-outline">
                {{ form.expected_dead_line(class='form-control') }}
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-12 mb-4">
            <div class="form-outline">
                {{ form.submit(class_='form-control btn btn-success') }}
            </div>
        </div>
    </div>
</form>

views.py

@task.route('/create', methods=['GET', 'POST'])
def create_new_task():
    form = CreateTaskForm()
    if request.method == 'POST' and form.validate():
        title = request.form.get('title')
        content = request.form.get('content')
        expected_dead_line = request.form.get('expected_dead_line')
        #your operations
    return render_template('task/create_task.html', form=form)

Also, you can install Flask-Form with this pip command.

pip install Flask-WTF
Recep Gunes
  • 157
  • 1
  • 8