Flask中的request是一个公共变量,需要导入request

from flask import Flask,request

接收url中的参数

@app.route("/req")
def req():
print(request.method) #获取访问方式 GET
print(request.url) #获取url http://127.0.0.1:5000/req?id=1&name=wl
print(request.cookies) #获取cookies {}
print(request.path) # 获取访问路径 /req
print(request.args) #获取url传过来的值 ImmutableMultiDict([('id', '1'), ('name', 'wl')])
print(request.args.get("id")) #get获取id 1
print(request.args["name"]) # 索引获取name wl
print(request.args.to_dict()) # 获取到一个字典 {'id': '1', 'name': 'wl'} return "Hello"

接收form中的参数

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="username">
<input type="password" name="pwd">
<input type="submit" value="登陆">
</form>
</body>
</html>

后端接收到的参数

@app.route("/login",methods=["POST","GET"])
def login():
print(request.form) # 格式 ImmutableMultiDict([('username', '123'), ('pwd', '123')])
print(request.form.to_dict()) # 格式 {'username': '123', 'pwd': '123'}
return render_template("login.html")

接收文件

request.files :接收文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="username">
<br>
<input type="password" name="pwd">
<br>
<input type="file" name="my_file">
<br>
<input type="submit" value="登陆">
</form>
</body>
</html>

上传文件并保存

@app.route("/login", methods=["POST", "GET"])
def login():
# print(request.form) # 格式 ImmutableMultiDict([('username', '123'), ('pwd', '123')])
# print(request.form.to_dict()) # 格式 {'username': '123', 'pwd': '123'} my_file = request.files.get("my_file") # 格式 ImmutableMultiDict([('my_file', <FileStorage: 'Chrysanthemum.jpg' ('image/jpeg')>)])
file_path = os.path.join("static", "1.jpg")
my_file.save(file_path) return render_template("login.html")

json data values

@app.route("/login", methods=["POST", "GET"])
def login(): print(request.data) # 存放的是请求体中的原始信息 Content-Type:无法识别的类型
print(request.json) # 请求头中存在 Content-Type:application/json 将请求体中的数据 存放在JSON中
print(request.values) # CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([('username', '123'), ('pwd', '123'), ('my_file', '')])])
print(request.values.to_dict()) # 这是个坑!!!{'username': '123', 'pwd': '123', 'my_file': ''}
return render_template("login.html")

Flask请求request的更多相关文章

  1. Flask -- 请求、上传文件、Cookies

    请求对象 from flask import request request.method #值为form表单提交的method 'POST'. 'GET'等 #如果值为'POST'或'PUT',则可 ...

  2. Flask请求扩展和数据库连接池

    1.1.Flask之请求扩展 #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask, Request, render ...

  3. flask请求上下文

    先看一个例子: #!/usr/bin/env python # -*- coding:utf-8 -*- import threading # local_values = threading.loc ...

  4. flask请求钩子、HTTP响应、响应报文、重定向、手动返回错误码、修改MIME类型、jsonify()方法

    请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数.这些请求钩子使用装饰器实现,通过程序实例app调用,以 b ...

  5. 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范

    一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...

  6. flask 之request用法

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  7. Flask中request参数

    首先要明确一件事,Request这是个对象,不管使用PHP还是python还是什么java语言,虽然request这个对象可能叫的名字不一样,(在其他语言中可能叫什么HttpRequest),但是原理 ...

  8. 【Flask】关于Flask的request属性

    前言 在进行Flask开发中,前端需要发送不同的请求及各种带参数的方式,比如GET方法在URL后面带参数和POST在BODY带参数,有时候又是POST的表单提交方式,这个时候就需要从request提取 ...

  9. Flask(4)- flask请求上下文源码解读、http聊天室单聊/群聊(基于gevent-websocket)

    一.flask请求上下文源码解读 通过上篇源码分析,我们知道了有请求发来的时候就执行了app(Flask的实例化对象)的__call__方法,而__call__方法返回了app的wsgi_app(en ...

随机推荐

  1. Tensorflow name_scope

    在 Tensorflow 当中有两种途径生成变量 variable, 一种是 tf.get_variable(), 另一种是 tf.Variable(). 使用tf.get_variable()定义的 ...

  2. bzoj2683&&bzoj4066

    题解: 前一题不是强制在线,后一题是强制在线 树套树空间会炸 说一下cdq分治+树状数组 首先我们利用cdq分治使得查询和操作保证先后关系 然后矩阵查询变成4个矩阵的差 那么我们就可以运用扫描线的方法 ...

  3. Python Web开发问题收集(二)

  4. 047 SparkSQL自定义UDF函数

    一:程序部分 1.需求 Double数据类型格式化,可以给定小数点位数 2.程序 package com.scala.it import org.apache.spark.{SparkConf, Sp ...

  5. RBM:深度学习之Restricted Boltzmann Machine的BRBM学习+LR分类—Jason niu

    from __future__ import print_function print(__doc__) import numpy as np import matplotlib.pyplot as ...

  6. POJ_2376_Cleaning Shifts【贪心】【区间覆盖】

    题目链接 题目大意: 有一些奶牛,每只奶牛负责一个时间段.问覆盖完全部的时间段最少需要多少只奶牛.若不能全部覆盖,输出-1. #include <cstdio>#include <a ...

  7. linux 学习笔记 APACHE安装总结

    #cd /usr/local #mkdir APACHE #tar zxvf /usr/etc/DEV/httpd-2.2.9.tar.gz #mv httpd-2.2.9/* . #rm -rf h ...

  8. SpringBoot使用LomBok

    Lombok是什么?它是一个能帮我们消除那些必须要写但是重复的代码,比如setter,getter,构造函数之类的方法. 首先先简单说一下idea安装lombok,有2种方法: 1.直接从http:/ ...

  9. .NET Framework 4 与.NET Framework 4 Client Profile有什么区别?

    .net framework 自从 2002 年发展至今,已经历了好几个版本,1.0, 1.1, 2.0, 3.0, 3.5 等不同的版本更替,.net framework 的Redistributa ...

  10. vue中的页面渲染方案

    一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for ...