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)
posted @ 2020-07-21 15:40  豆子V  阅读(155)  评论(1编辑  收藏  举报