flask之request
from flask import Flask, render_template, redirect, jsonify, send_file, request, session
app = Flask(__name__)
@app.route('/request/', methods=['GET', 'POST'])
def home():
print(request.method) # 请求方式
print(request.url) # 请求完整路径(ip+port+路径+参数)http://192.168.16.14:8888/?id=1&name=yang
print(request.path) # 请求路径/
print(request.args) # url请求查询参数
print(request.form) # Formdata表单数据(可以采用GET方式)
print(dict(request.form))
print(request.form.to_dict())#MultiDict字典转化成常见的pyhton格式字典
print(request.files) # 文件上传(不能用GET方式上传文件,同时在form中添加属性enctype="multipart/form-data")
print(request.values) #获取url中get和post中的formdata数据
print(request.json) # 如果在请求中写入了 "application/json" 使用 request.json 则返回json解析数据, 否则返回 None(request.data中也有)
print(request.data) # 不属于form/formData或mimetype(http://www.w3school.com.cn/media/media_mimeref.asp)的描述,request就会将无法处理的参数转为Json存入到 data 中
# print(request.cookies) # 请求携带的cookie
# print(request.environ) # 请求原数据信息
# print(request.headers) # 请求头信息
# print(request.full_path) # 请求路径带参数 /?id=1&name=yang
# print(request.values) # 请求数据,包含GET的args和POST的formdata(不推荐使用)
# print(request.host) # 当前服务主机端口信息 192.168.16.14:8888
# print(request.host_url) # 请求主机信息 http://192.168.16.14:8888/
# print(request)
# print(request.query_string) # bytes类型url请求查询参数
# print(request.base_url) # 请求路径(ip+port+路径,不带参数)http://192.168.16.14:8888/
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
print(request.files.get('myfile').filename) # POST方式上传的文件数据
filename = request.files.get('myfile').filename # POST方式上传的文件名
if filename:
request.files.get('myfile').save() # POST方式上传的文件保存
return '200 ok'
if __name__ == '__main__':
app.run('0.0.0.0', 8888, debug=True)
templates模板文件中的页面login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username">
密码:<input type="password" name="pwd">
文件:<input type="file" name="myfile">
<input type="submit" value="提交">
</form>
</body>
</html>
flask之request的更多相关文章
- flask 之request用法
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- Flask中request参数
首先要明确一件事,Request这是个对象,不管使用PHP还是python还是什么java语言,虽然request这个对象可能叫的名字不一样,(在其他语言中可能叫什么HttpRequest),但是原理 ...
- 【Flask】关于Flask的request属性
前言 在进行Flask开发中,前端需要发送不同的请求及各种带参数的方式,比如GET方法在URL后面带参数和POST在BODY带参数,有时候又是POST的表单提交方式,这个时候就需要从request提取 ...
- Flask入门request session cookie(二)
1 HTTP方法分类 1 GET 浏览器告知服务器:只获取页面上的信息并发给我.这是最常用的方法. 2 HEAD 浏览器告诉服务器:欲获取信息,但是只关心消息头 .应用应像处理 GET 请求一样来处理 ...
- flask中的Flask、request、render_temple、redirect和url_for
学flask也有一个多星期了,对这个web框架也有了一点的了解,梳理一些基础的知识点,还是小白一只,代码写得比较low,若文章有错误的地方欢迎大佬随时指正,代码中被注释掉的代码是关于预防csrf,无视 ...
- Flask中request与response参数
目录 request response request from flask import Flask from flask import request app = Flask(__name__) ...
- FLASK 三剑客 request jinjia2
Flask Web 框架Django 15 优势 : 组件全 - admin - Model ORM - Forms 教科书式 劣势 : 加载所有组件 - 占用资源较高 重型框架 Flask 3 优势 ...
- Flask请求request
Flask中的request是一个公共变量,需要导入request from flask import Flask,request 接收url中的参数 @app.route("/req&qu ...
- python flask的request模块以及在flask编程中遇到的坑
一.首先来讲讲遇到的坑: 1.linux下package的打包引用: """ 路径结构如下: ./project ./bin ./api ""&quo ...
- Flask的request和session是从哪里来的?
因为之前一直在项目中使用django, 所以在学习Flask的过程中, 难免对吧django和Flask进行对比, 这一次我发现Flask中的request和session并没有想象的那么简单, 所以 ...
随机推荐
- (四)PL/SQL运算符
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作. PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型: 1.算术运算符 2.关系运算符 3.比较运算符 4.逻辑运算符 5.字符串运算符 ...
- opencv-2-VS2017与QT显示图像
opencv-2-VS2017与QT显示图像 opencvqtVSC++ 目的 使用 VS 构建第一个 opencv 程序 使用 QT 构建 第一个 opencv 程序 VS 导入 QT 程序 开始 ...
- HTML中使用CSS样式(下)
上节内容回顾加补充: 补充:默认img标签,有一个1px的边框 如果点击图片跳转到连接,a标签下套img标签,在IE有的版本中,会有蓝色边框. <a href="http://blog ...
- 为什么LIKELY和UNLIKELY要用两个叹号
LIKELY和UNLIKELY的一般定义如下: #define LIKELY(x) (__builtin_expect(!!(x),1))#define UNLIKELY(x) (__builtin_ ...
- dhcpd.conf(5) - Linux man page
http://linux.die.net/man/5/dhcpd.conf Name dhcpd.conf - dhcpd configuration file Description The d ...
- Java泛型和编译优化的一个例子
public class Main { public static void main(String[] args) { ArrayList<String> strList = new A ...
- CreateDIBSection和位图结构
2019独角兽企业重金招聘Python工程师标准>>> 理解分辨率 我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复 ...
- Vue.js 条件渲染 v-if、v-show、v-else
v-if v-if 完全根据表达式的值在DOM中生成或移除一个元素.如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除:否则,对应元素的一个克隆将被重新插入DOM中. 1 2 3 ...
- 洛谷2014 选课(树形DP)树形背包问题
题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门课有个学分,每门课有一 ...
- CentOS7 安装boost
(1)到这个网址www.boost.org下载相应的代码包,我下载的是目前最新的版本boost_1_59_0.tar.bz2 (2)进入目录执行解压操作:tar -jxvf boost_1_59_0. ...