02 flask request 上传
import os
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
@app.route('/login', methods=['GET', 'POST']) # 路由中将允许的请求方式全部加入
def login():
if request.method == 'POST': # 判断页面的请求方式 request.method
# print(request.form.get('username')) # flask中获取POST方式提交的表单数据 request.form.get request.form.to_dict()
# print(request.form.to_dict())
# print(request.url) # 拿到整个页面请求地址
# print(request.url_charset) # url的编码方式
# print(request.url_root) # 请求地址 host
# print(request.url_rule) # 请求路由地址
# print(request.values) # 包含了所有请求(POST,GET)中的数据,包括URL和Form中的数据
# print(request.args.get('username')) # 获取URL中的参数数据
# print(request.args.to_dict())
# 上传保存文件,并用原文件名保存至 upload目录下 获取flask特殊文件对象FileStorage
my_file = request.files.get('my_file') # 提取页面提交文件
new_file = os.path.join('upload', my_file.filename) # 拼接文件地址
my_file.save(new_file) # 保存文件
# 获取其他数据
# request.headers
# request.cookies
# request.path 和 request.url_rule 完全一样
# request.host 和 request.url_root 完全一样
# 特殊提交方式数据获取
# request.json # 获取Content-Type:application/json时提交的json数据
# request.data # 获取原始请求体中的数据,数据类型无法识别时
return redirect('/')
if request.method == 'GET':
return render_template('login.html')
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()