Flask

4. Формы

Ответ по ссылке, не единственный способ взаимодействовать с пользователем.
К примеру, пользователь может хотеть отправить данные для регистрации или входа. Для этого существует два вида запросов: GET и POST. GET запросы нужны для того, чтобы получить страницы (собственно GET запрос используется, когда вы заходите на localhost:5000/, yandex.ru/ и другие сайты), POST запросы нужны для того, чтобы передать какую-то информацию на сервер.
Для того, чтобы обрабатывать POST запросы, нужно import'нуть request и, создавая функции для адресов, сделать следующее:

from flask import Flask, request

app = Flask(__name__)

@app.route("/", methods=['GET', 'POST']) #добавили методы
def hello_world():
    if request.method == 'GET':
        return 'Hello GET world!'
    else:
        return 'Hello POST world!'

app.run()

Будет закономерным вопрос, как пользователь может отправить этот самый POST запрос. Один из способов этой сделать: формы в HTML. Создадим следующую страницу:

<!DOCTYPE html>
<html>
<head>
<title>
Привет мир!
</title>
</head>
<body><form method="post">
<p>Логин:</p>
<input type="text" id="username" name="username" required>
<p>Пароль:</p>
<input type="password" id="password" name="password" required>
<button type="submit">Войти</button>
</form>
</body>
</html>

С её помощью можно ввести "username" и "password", после чего их отправить. Для того, чтобы их обработать, нужно воспользоваться request.form[*название поля*].

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route("/", methods=['GET', 'POST']) #добавили методы
def hello_world():
    if request.method == 'GET':
        return render_template('hellow_world.html')
    else:
        print(request.form['username'])
        print(request.form['password'])
        return 'Hello POST world!'

app.run()