Простое руководство о том, как мы можем создать форму в Python Flask, запрашивающую имя и адрес электронной почты, и передать данные этой формы обратно в наш код Python.
Python Flask, вероятно, является одним из самых простых фреймворков для новичков в Python для веб-разработки. В этой статье мы попытаемся как можно проще показать, как мы можем создать форму в Python flask, запрашивая имя и адрес электронной почты, и как эти данные формы можно передать обратно в наш код Python.
Начнем с простого приложения Flask
app.py
from flask import * app = Flask(__name__) @app.route("/") def home(): return render_template("home.html") if __name__ == "__main__": app.run()
шаблоны/home.html
<h1>this is home.html</h1>
Примечание: не забудьте поместить home.html в папку templates
.
Добавление входных данных в наш HTML-файл
Здесь мы хотим добавить поля ввода в наш HTML-файл, home.html, чтобы запросить у нашего пользователя имя и адрес электронной почты. Вот как примерно должна выглядеть наша веб-страница:
шаблоны/home.html
<h1> This is home.html </h1> <form method="post"> Name: <input name="name"/> <br/><br/> Email: <input name="email"/> <br/><br/> <button type="submit">Submit</button> </form>
Что нужно помнить:
- Поместите элементы ввода в форму
- Установите метод формы как
"post"
- Добавьте атрибуты
name
к нашим полям ввода — эти атрибутыname
будут тем, как Python Flask идентифицирует наши поля ввода. - Добавьте кнопку отправки с помощью
type="submit"
Если мы добавим их, мы сможем увидеть недавно добавленные поля ввода при посещении нашей конечной точки /
. Тем не менее, это еще не будет иметь никакой реальной функциональности.
Связывание этого с Python Flask
@app.route("/", methods=["GET", "POST"]) def home(): if request.method == "POST": print(request.form["name"]) print(request.form["email"]) return return render_template("home.html")
Во-первых, не забудьте добавить methods=["GET", "POST"]
в наш декоратор app.route
. Когда мы нажимаем кнопку отправки в нашей форме, она отправляет запрос POST на наш сервер Python Flask. Аргумент ключевого слова methods=["GET", "POST"]
позволяет нашей функции home
обрабатывать запросы GET и POST.
Далее добавим оператор if if request.method == "POST"
. Это происходит, когда мы делаем POST-запрос к нашему бэкэнду Python Flask, что происходит, когда мы нажимаем кнопку отправки.
Вы можете думать о request.form
как о словаре, содержащем набор пар ключ-значение, где ключи — это атрибуты name
в наших полях ввода, а значения — это значения полей ввода (по сути, то, что мы вводим в поля ввода).
У нас есть 2 поля ввода, 1 с именем name
и другое с именем email
. request.form["name"]
возвращает все, что мы вводим в поле ввода имени, а request.form["email"]
возвращает все, что мы вводим в поле ввода электронной почты.
Тестирование нашей формы
Попробуйте ввести имя и адрес электронной почты в форму, затем нажмите кнопку «Отправить». Проверьте терминал, который вы использовали для запуска приложения Python Flask — имя и адрес электронной почты, которые вы ввели в форму, должны быть напечатаны там.
Что дальше
Теперь, когда мы убедились, что можем распечатать значения наших входных данных, мы можем затем написать дополнительный код для их обработки — выполнить дополнительную обработку, добавить их в какую-либо базу данных или сделать с вашими входными данными что угодно.
Пример ссылки на репозиторий
Заключение
Если эта статья была полезной и вы хотите поддержать меня как автора, подумайте о том, чтобы подписаться на членство в Medium — это стоит 5 долларов в месяц, и вы получаете неограниченный доступ к историям на Medium. Если вы зарегистрируетесь по моей ссылке ниже, я получу небольшую комиссию без каких-либо дополнительных затрат для вас.
Если эта статья была для вас очень ценной, подумайте о том, чтобы угостить меня кофе — каждый маленький вклад будет очень ценен!
https://www.buymeacoffee.com/zlliu
Если вы хотите получать уведомления о моих публикациях, присоединитесь к моему списку рассылки.
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.