• 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的方式提交了数据

    在这里插入图片描述

  • 相关阅读:
    16.项目部署
    2022年11月 Ubuntu 18.04 ROS Melodic 安装教程
    【无标题】
    人类细胞丨ProSci 4-1BB 配体重组蛋白方案
    webpack构建vue项目 基础04 之图片base64转化、图片压缩
    Java Spring Redis实现过期键监听回调
    URL编码解码详解
    【第2章 Node.js基础】2.3 Node.js事件机制
    【单片机毕业设计】【mcuclub-jj-025】基于单片机的台灯的设计
    Kubernetes CKA 模拟题解析【2022最新版】(连载002)
  • 原文地址:https://blog.csdn.net/qq_64973687/article/details/134458827