Flask 将表单数据发送到模板

Flask 将表单数据发送到模板:关联的文章:
Flask request 属性详解
HTML之表单设计

1、get请求

  • 注意点:如下action中url效果同<form action="/test3">,具体使用见《HTML表单设计》

(1)html文件:

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
<!--1:默认get请求,2:action中url效果同/test3,具体见文章HTML表单设计中action属性介绍-->
    <form action="http://10.12.224.153:5569/test3">
        <!-- 这是一个普通的文本输入框 -->
        请输入数字1:<input type="text" name="number1">
        <br>
        <!-- 这是一个普通的文本输入框 -->
        请输入数字2:<input type="text" name="number2">
        <br>
        <!-- 这个一个重置按钮,可以将非默认值进行清空 -->
        <br>
        <input type="reset">
        <!-- 使用type="submit"这个一个提交按钮,可以将内容提交到后台服务器-->
        <input type="submit">
    </form>
    <br>
    <textarea rows="5" cols="38">返回结果为:{{data}}</textarea>
</body>

</html>

(2)视图函数

  • 注意点:因为请求方法为get,因此使用request.args.get()方法,并且获取的值是字符串类型,详情见《Flask request 属性详解》
python 复制代码
from flask import Flask, render_template,Blueprint,request

form222 = Blueprint('formDis222', __name__)
#实例化蓝图对象
#两个必要参数':
# 第一个参数:蓝图名字,自定义'
# 第二个参数:__name__'蓝图所在的模块或者包,一般为'__name__'变量;
# 第三个参数:url_prefix,非必填,,表示在该蓝图下,所有的url地址访问路径中都要加上xxx路径,即域名/xxx/路由

@form222.route('/test2')#在蓝图对象上进行操作,路由
def fromtest2():
    return render_template('order1.html')

@form222.route('/test3',methods=['GET','POST'])  #定义视图函数支持的请求方法
def formtest3():
    if request.method == 'GET':
        number11 = request.args.get('number1')  #因为请求方法为get,因此使用request.args.get()方法,并且获取的值是字符串类型
        number22 = request.args.get('number2') #因为请求方法为get,因此使用request.args.get()方法,并且获取的值是字符串类型
        numberA = number11 + number22
        return render_template('order1.html',data=numberA)

2、post请求

  • 注意点:如下action中url效果同<form action="/test5">,具体使用见《HTML表单设计》

(1)html文件

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
<!--1:定义请求方法为post,2:action中url效果同/test5,具体见文章HTML表单设计中action属性介绍-->
    <form action="http://10.12.224.153:5569/test5" method="post">
        <!-- 这是一个普通的文本输入框 -->
        请输入数字1:<input type="text" name="number3">
        <br>
        <!-- 这是一个普通的文本输入框 -->
        请输入数字2:<input type="text" name="number4">
        <br>
        <!-- 这个一个重置按钮,可以将非默认值进行清空 -->
        <br>
        <input type="reset">
        <!-- 使用type="submit"这个一个提交按钮,可以将内容提交到后台服务器-->
        <input type="submit">
    </form>
    <br>
    <textarea rows="5" cols="38">返回结果为:{{data}}</textarea>
</body>

</html>

(2)视图函数

  • 注意点:因为请求方法为post,因此使用request.form.get()方法,并且获取的值是字符串类型,详情见《Flask request 属性详解》
python 复制代码
from flask import Flask, render_template,Blueprint,request

form333 = Blueprint('formDis333', __name__)
#实例化蓝图对象
#两个必要参数':
# 第一个参数:蓝图名字,自定义'
# 第二个参数:__name__'蓝图所在的模块或者包,一般为'__name__'变量;
# 第三个参数:url_prefix,非必填,,表示在该蓝图下,所有的url地址访问路径中都要加上xxx路径,即域名/xxx/路由

@form333.route('/test4')#在蓝图对象上进行操作,路由
def fromtest4():
    return render_template('order2.html')

@form333.route('/test5',methods=['GET','POST'])  ##定义视图函数支持的请求方法
def formtest5():
    if request.method == 'POST':
        number33 = request.form.get('number3')  #因为请求方法为post,因此使用request.form.get()方法,并且获取的值是字符串类型
        number44 = request.form.get('number4') #因为请求方法为post,因此使用request.form.get()方法,并且获取的值是字符串类型
        numberB = number33 + number44
        return render_template('order2.html',data=numberB)
相关推荐
兵慌码乱10 分钟前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
IT_陈寒1 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
fliter2 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
luckdewei3 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
fliter3 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪3 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter3 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶4 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿4 小时前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端
爱勇宝4 小时前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员