zoukankan      html  css  js  c++  java
  • flask之request

    flask的request

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的,看看代码中怎么用...

    from flask import Flask
    from flask import request
    from flask import render_template
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def aa():
        return render_template('formss.html')
    
    
    @app.route('/rep', methods=['POST'])  # 表示只允许post请求,是个列表就意味着可以允许多种请求方式
    def rep():
        print(request.values)  # 可以同时获取ulr和form的参数  CombinedMultiDict([ImmutableMultiDict([('id', '1'), ('age', '12')]),
        # ImmutableMultiDict([('user', '小明'), ('pwd', '123')])])
        print(request.values.get('id'))
        print(request.values['user'])
        print(request.values.to_dict())  # 直接将url和form的内容转换成字典
        print(request.method)  # 用来验证请求方式
        print(request.form)  # 类似字典的东西  ImmutableMultiDict([('user', '小明'), ('pwd', '123')])
        print(request.form['user'])  # 字典取值 小明
        print(request.form['pwd'])  # 字典取值  123
        print(list(request.form.keys()))  # 拿出所有的value值
        return 'OK'
    
    
    @app.route('/gg', methods=['GET', 'POST'])
    def gg():
        print(request.args)  # 获取url中的参数  也是一个类似字典  ImmutableMultiDict([('id', '1'), ('age', '18')])
        # request.args与request.form 的区别是 一个是获取url的参数值 一个是是获取表单的内容 都是一个类似的字典
        dic = dict(request.args)
        print(dic)  # {'id': '1', 'age': '18'}
        print(request.headers)
        '''
        Host: 127.0.0.1:5000
        Connection: keep-alive
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
        Accept-Encoding: gzip, deflate, br
        Accept-Language: zh-CN,zh;q=0.9
        '''
        print(request.data)  # request.data 之 如果处理不了的就变成字符串儿存在data里面
        '''
        b''
        '''
        return 'ok'
    
    # request 是基于 mimetype 进行处理的mimetype的类型 以及 字符串儿 : http://www.w3school.com.cn/media/media_mimeref.asp
    #
    # 如果不属于上述类型的描述,request就会将无法处理的参数转为Json存入到 data 中
    #
    # 其实我们可以将 request.data , json.loads 同样可以拿到里面的参数
    
    
    # 注意这里的坑来啦! 坑来啦!
    # 如果url和form中的Key重名的话,form中的同名的key中value会被url中的value覆盖
    # request.cookies 是将储存在浏览器中的cookie读取出来
    @app.route('/a')
    def file():
        return render_template('forms1.html')
    
    @app.route('/file',methods=['POST'])
    def form1():
        print(request.files)
        print(request.files['file'])
        my_file = request.files['file']
        my_file.save('douzi.txt')
        return 'OK'
    
    @app.route('/path')
    def path_():
        print(request.path)   #获取当前的url路径  /path
        print(request.script_root) #获取当前url的上一级路径
        print(request.url)  #获取当前的url的全部路径
        print(request.url_root)  #获取当前的url上一级的全部路径
        return 'ok'
    
    # request.json 之 前提你得告诉是json
    
    # 如果在请求中写入了 "application/json" 使用 request.json 则返回json解析数据, 否则返回 None
    if __name__ == '__main__':
        app.run('127.0.0.1', 5000, debug=True)
    
  • 相关阅读:
    linux下音乐播放软件
    老男孩教育Python自动化开发精英班-开班典礼感想
    【热身】github的使用
    ubuntu12.04下有线网无电缆插入问题
    ubuntu12.04下安装搜狗拼音
    对树莓派学习开发环境的探讨
    Ubuntu12.04下安装VirtualBox
    ubuntu下安装显卡驱动
    ubuntu下使用锐捷校园网
    深度学习之优化算法
  • 原文地址:https://www.cnblogs.com/maqian/p/13355425.html
Copyright © 2011-2022 走看看