flask通过表单自动产生get请求的参数、form表单实现POST请求的自动提交

发布于:2025-06-22 ⋅ 阅读:(22) ⋅ 点赞:(0)

通过表单自动产生get请求的参数

相关代码如下:

import flask

app = flask.Flask(__name__)

@app.route('/')
def login():
    html = '''
                <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>flask表单实现get数据拼接</title>
        </head>
        <body>
            <form action="#" method="get">
                user <input type="text" name="user"/> </br>
                sex <input type="radio" name="sex" value="male"> 男
                    <input type="radio" name = "sex" value="female"> 女
                </br>
                <input type="submit" value="提交">
                
            </form>
        </body>
        </html>
    '''
    return html

if __name__ == '__main__':
    app.run(debug=True)

执行结果如下:

在这里插入图片描述
提交后数据在服务端接收到的数据
在这里插入图片描述
key是:user、sex
对应的value是:姓名、male/female
在这里插入图片描述
还可以通过flask.request.values.get(‘key’,‘’)来获取对应的数据,执行结果如下
在这里插入图片描述

form表单实现POST请求的自动提交

post请求和get请求的区别是在method方法上把get改成post即可
在这里插入图片描述
关于路由方式需要调整的说明

import flask

app = flask.Flask(__name__)

# Method Not Allowed
# The method is not allowed for the requested URL.
# 报错提示是说路由不允许提交get请求,需要调整路由,加上method,需要把get和post都加上,
# 因为第一次没有点击表单时候是get请求,提交的时候才是post请求,所以需要两者都支持
@app.route('/', methods=['GET', 'POST'])
def login():
    html = '''
        <!DOCTYPE html>
        <html lang="en" xmlns="http://www.w3.org/1999/html">
        <head>
            <meta charset="UTF-8">
            <title>表单实现get数据拼接</title>
        </head>
        <body>
            <form action="#" method="post">
                user <input type="text" name="user"/> <br />
                sex <input type="radio" name="sex" value="male"/> 男
                     <input type="radio" name="sex" value="female"/> 女
                <br />
                <input type="submit" value="提交">
            </form>
        </body>
        </html>
    '''

    user = flask.request.values.get("user",'')
    sex = flask.request.values.get("sex",'')

    return html +f'<div>您输入的数据为:{user = }, {sex = }</div>'

if __name__ == '__main__':
    app.run(debug=True)

调整后重启测试
在这里插入图片描述
这时候可以通过检查通过“载荷/负载”这里看到传输的参数,这时候在请求路径里面已经看不到参数了,相对于get请求来说更加安全一点儿
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到