必知的Flask的request Flask Request对象
来⾃客户端⽹⻚的数据作为全局请求对象发送到服务器。为了处理请求数据,应该从Flask模块导 ⼊。
Request对象的重要属性如下所列:
form – 它是⼀个字典对象,包含表单参数及其值的键和值对。
args – 解析查询字符串的内容,它是问号(?)之后的URL的⼀部分。
Cookies – 保存Cookie名称和值的字典对象。
files – 与上传⽂件有关的数据。
method – 当前请求⽅法
使⽤request也⽐较简单,就是直接从从 flask 模块导⼊请求对象:
from flask import request
\"\"\"args - 解析查询字符串的内容,它是问号(?)之后的URL的⼀部分。\"\"\" @app.route(\'/login\', methods=[\'POST\', \'GET\']) def login(): if request.method == \'POST\': user = request.form[\'nm\'] return redirect(url_for(\'do_welocome\',name = user)) else: user = request.args.get(\"nm\") return redirect(url_for(\'do_welocome\',name = user))
必知的Flask的Cookies获取数据 Cookie以⽂本⽂件的形式存储在客户端的计算机上。
其⽬的是记住和跟踪与客户使⽤相关的数据,以获得更好的访问者体验和⽹站统计信息。
Flask的Request对象包含Cookie的属性。
它是所有cookie变量及其对应值的字典对象
除此之外,cookie还存储其⽹站的到期时间,路径和域名。
在Flask中,对cookie的处理步骤为:
1 设置cookie:
设置cookie,默认有效期是临时cookie,浏览器关闭就失效
可以通过 max_age 设置有效期, 单位是秒
2 获取cookie
获取cookie,通过request.cookies的⽅式, 返回的是⼀个字典,可以获取字典⾥的相应的值
3 删除cookie
这⾥的删除只是让cookie过期,并不是直接删除cookie
删除cookie,通过delete_cookie()的⽅式, ⾥⾯是cookie的名字
from flask import Flask,request,render_template,make_response app = Flask(__name__) @app.route(\'/setcookies\') def set_cookie(): rep = make_response(\'设置cookies成功cookie:zhen guo:33\') rep.set_cookie(\"zhen guo\", \'33\',max_age = 3600) return rep @app.route(\'/getcookie\') def get_cookie(): cookie_value = request.cookies.get(\'zhen guo\') return cookie_value @app.route(\'/del_cookie\') def del_cookie(): rep = make_response(\'删除cookie成功\') rep.delete_cookie(\'zhen guo\') return rep if __name__ == \"__main__\": app.debug = True app.run(\'127.0.0.1\',5000)
Flask ⽂件上传 在 Flask 中处理⽂件上传⾮常简单。
只需要⼀个 HTML 表单,其enctype属性设置为’multipart/form-data’,将⽂件发布到 URL。
URL 处理程序从request.files[]对象中提取⽂件,并将其保存到所需的位置
<!DOCTYPE html> <html lang=\"en\"> <head> <meta charset=\"UTF-8\"> <title>Title</title> </head> <body> <form action=\"http://127.0.0.1:5000/uploader\" method=\"POST\" enctype=\"multipart/form-data\"> <p><input type=\"file\" name=\"file1\" accept=\".jpg,.png,.xlsx,.xls\"/></p> <p><input type=\"submit\"/></p> </form> </body> </html>
每个上传的⽂件⾸先会保存在服务器上的临时位置
然后将其实际保存到它的Y终位置。
⽬标⽂件的名称可以是硬编码的
也可以从 request.files[file]对象的filename属性中获取。
但是,建议使⽤secure_filename()函数获取它的安全版本
Flask对象的配置设置中定义默认上传⽂件夹的路径和上传⽂件的Y⼤值
app.config[‘UPLOAD_FOLDERʼ] 定义上传⽂件夹的路径
app.config[‘MAX_CONTENT_LENGTHʼ] 指定要上传的⽂件的Y⼤值(以字节为单位
from flask import Flask,request,render_template,make_response from werkzeug.utils import secure_filename import os app = Flask(__name__) app.config[\'UPLOAD_FOLDER\'] = r\'D:\\pythonProject1\\static\' @app.route(\'/\') def index(): return render_template(\'upload.html\') @app.route(\'/uploader\',methods=[\'POST\',\'GET\']) def upload(): if request.method == \"POST\": f = request.files[\'file1\'] filename = secure_filename(f.filename) f.save(os.path.join(app.config[\'UPLOAD_FOLDER\'],filename)) return f\'文件{filename}上传成功\' if __name__ == \"__main__\": app.debug = True app.run(\'127.0.0.1\', 5000)
暂无评论内容