简介
本博文主要的知识点
表单是用户收集信息的各种表单元素的集合区域,他的作用是实现用户和服务器的数据交互。form表单是web应用中最基本的一部分,为了能处理form表单,flask-wif拓展模块提供来了良好的支持。
使用flask处理通用表单
app.py
from flask import Flask,render_template,request #导入相应的模块
app=Flask(__name__)#flask初始化
@app.route('/')#定义路由表
def hello_world():#定义视图函数
return render_template('index.html')
@app.route('/login',methods=['GET','POST'])
def login():
if request.method='GET':
return '这是get请求'
else:
return '这是post请求'
if __name__=='__main__':
app.run(debug=True)
使用flask文件上传
使用flask上传文件时需要注意一下三点
from flask import Flask,render_template,request
import os
from os import path
path路径下的相关属性
* os.path.sep:在window下的分割符是"\"
* os.path.altsep:linux下的路径分隔符是"/"
* os.path.curdir:更目录
* os.path.pardir:当前目录
* os.path.abspath(path):父目录
* os.path.join():绝对路径
注意:在不同的操作系统下不同的文件分隔符是不相同的
from werkzeug.utils import serure_filename
....
@app.route('/',methods=['POST','GET'])
def hello_world():
if request.method=='GET':
return render_template('upload.PHP')
else:
f=request.file['file'] #获取文件流
filename=secure_filename(f.filename) #去掉其中的文件名
f.save(path.jion(static/uploads,filename)) #使用save方法来保存文件
return '文件上传成功'
......
html元素介绍:
.input <!--定义容器input-->
backgroup <!--定义背景颜色-->
color <!--字体的颜色-->
font-size <!--字体大小-->
font-weight <!--字体加粗-->
border-radius <!--所有的角都使用-->
form <!--表单-->
action <!--动作-->
method <!--方法-->
class <!--类属性-->
input <!--按钮-->
.......
if platfrom.system()=='windows':
slash='\\'
else:
platform.system()=='linux':
slash='/'
upload_path=os.path.curchir + slash+"uploads" +slash
改进2
.......
@app.route('/',methods=['POST','GET'])
def hello_world():
if request.method=='GET':
return render_template('upload.html')
else:
if not os.path.exists(upload_path)
os.makedirs(upload_path)
form=uploadform(combinedMultiDict{[request.form,request.files]}) #表单验证
if form.validate():
f=request.filename['file'] #获取文件流
filename=secure_filename(f,filename) #获取文件名称
exit=filename.rsplit('.',1)[1]#获取文件的后缀名
unix_time=int(time.time) #获取文件的时间
new_filename=str(unix_time)+'.'+exit #对文件进行重命名
file_url=upload_path+new_file
f.save(path.join(upload_path,new_filename))#文件保存
return
else:
return "只支持文件jpg等图片文件上传"
cookie的使用
设置cookie主要的俩种方式,一种是通过response设置对象设置,另一种是直接通过设置表单头实现。
(1)通过response对象设置
def set_cookie(): #定义视图函数
resp=request('设置cookie!')
resp.set_cookie('username','zhangsan') #传入cookie
return resp
(2)通过设置表单来实现
def set_cookie():#先创建响应的对象
resp=respone('设置cookie')
#设置cookie的usename
resp.header['set-cookie']="username=zhangsan;" Expires=SUN,-Nov-2020 05:10:02 GMT;Max—Age=3600;path='/'
return resp #返回响应的response
查看cookie
可以通过request.cookies.get来得到
删除cookie
可以通过delete_cookie()来完成
设置cookie的作用域
cookie默认只能在主域名上使用,如果想要在子域名中使用cookie。
from bule_admin import bp
app.register_blueprint
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。