• Python武器库开发-flask篇之Get与Post(二十五)


    flask篇之Get与Post(二十五)

    在Flask中通过request对象请求相关的数据,在正常的网页请求的过程中,有两种请求的方式,Get和Post

    Get请求

    我们现在来看看在Flask中是如何以Get方式得到我们想要的值的,通过request.args可以获取Get请求中的所有参数,以字典的形式返回。例如:

    #!/usr/bin/env python3
    
    from flask import Flask
    from flask import request
    from flask import render_template
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return 'Hello World!'
    
    
    #常规输入url的访问就是get方法
    @app.route('/user/')
    def user_password(password):
    	#获取浏览器的User-Agent头
        print('User-Agent',request.headers.get('User-Agent'))
        #以Get请求的方式获取数据,传入的参数是time
        print('time:',request.args.get('time'))
        #以Get请求的方式获取数据,传入的参数是q
        print('q',request.args.get('q'))
        #以Get请求的方式获取数据,传入的参数是issinge
        print('issinge:',request.args.get('issinge'))
        return 'password is {}'.format(password)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    保存以上的代码,运行即可

    在这里插入图片描述

    接下来,我们我们在任意浏览器输入URL链接:http://127.0.0.1:5000/user/123456?time=2122&q=3&issinge=cat,以Get的方式去请求数据,常规输入url的访问就是get方法

    在这里插入图片描述
    这里可以看到我们以Get方式请求传入的数据参数,我们这里以Get的方式拿到了我们想要的值

    在这里插入图片描述

    Post请求

    现在我们来学习如何以Post的方式提交数据,如果我们想要以Post的方式提交数据,通过request.form可以获取Post请求中的所有参数,以字典的形式返回,首先我们要先
    运行以下的代码,例如:

    #!/usr/bin/env python3
    
    from flask import Flask
    from flask import url_for
    from flask import redirect
    from flask import render_template
    from flask import request
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        return 'Hello World!'
    
    
    #methods参数用于指定允许的请求格式
    @app.route('/register',methods=['Get','POST'])
    def register():
        print('method:',request.method)
        print("name",request.form['name'])
        print('password',request.form.get('password'))
        print('hobbies',request.form.getlist('hobbies'))
        print('age',request.form.get('age',default=18))
        return 'register successd!'
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    保存即可,然后去运行这个脚本

    python3 app.py
    
    • 1

    在这里插入图片描述

    然后我们需要在写一个客户端的脚本文件(client.py),以Post的方式去提交数据:

    #!/usr/bin/env python3
    import requests
    
    #设置需要发送的数据
    user_info = {'name':'qianfu','password':'123456','hobbies':['code','run']}
    
    #向url发送post请求
    r = requests.post("http://127.0.0.1:5000/register",data=user_info)
    
    print(r.text)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    保存这行代码,运行脚本

    #编辑脚本文件
    vim client.py
    #运行脚本文件
    python3  client.py
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    此时,我们就以Post的方式提交了数据

    在这里插入图片描述

  • 相关阅读:
    裸辞,我去面试Python岗位了
    【Kotlin】从字节码角度理解kotlin构造函数、成员变量、init代码块执行顺序
    淘宝/天猫api 添加收货地址 API接口
    Leetcode 704 二分查找
    2023年中国调音台产业链、产量及市场规模分析[图]
    主动配电网故障恢复的重构与孤岛划分matlab程序
    Flask框架:如何运用Ajax轮询动态绘图
    OpenHarmony装饰指定自定义组件:@BuilderParam装饰器
    【23种设计模式】装饰模式(九)
    Google Guava Cache LoadingCache 基本使用
  • 原文地址:https://blog.csdn.net/qq_64973687/article/details/134458827