from flask import Flask,render_template,request,redirect,session app = Flask(__name__) #当前文件的文件名 app.secret_key="!@#$%^" #设置一个secret_key相当于加密密钥与seesion一起使用 app.debug=True #开启debug模式:每次我们改动代码会自动重启 @app.route("/login",methods=["GET","POST"]) #methods 加入允许的请求方式 def login(): if request.method =='GET': print(request.args)#获取url中的字符串ImmutableMultiDict([('username', 'zhuxibo'), ('pwd', '12345')]) print(request.args.to_dict()) #{'username': 'zhuxibo', 'pwd': '12345'} print(request.args.get('pwd'),type(request.args.get('pwd'))) #12345 <class 'str'> print(request.charset)#返回url的编码格式 print(request.url_root)#返回请求的服务器地址 print(request.url_rule)#返回请求接口路径 return render_template("login.html") if request.method =='POST': # print(request.form)#Flask获取FormData的内容的对象 ImmutableMultiDict([('username', '11'), ('pwd', '1')]) # print(request.form.get('username'))#通过key直接拿value的值 # print(request.form.get('pwd'))#通过key直接拿value的值 # print(request.form.to_dict()) #to_dict()直接返回formData的请求参数返回字典形式。{'username': 'zhuxibo', 'pwd': '12345'} # print(request.files)#ImmutableMultiDict([('my_file', <FileStorage: '111.png' ('image/png')>)]) # print(request.files.get("my_file"))#提交文件 返回一个文件特殊对象<FileStorage: '111.png' ('image/png')> # my_file=request.files.get("my_file") # # my_file.save("new_picture.jpg")#可以将传输的文件保存到本地,传要保持的文件路径 # new_filepath=os.path.join("my_picture",my_file.filename)#获取保存文件路径,将包名与文件名进行拼接 # print(new_filepath) # my_file.save(new_filepath)#获取上传的文件名并保存 #获取其他数据 # print('===============') # print(request.headers)#获取请求头 # print(request.cookies)#获取请求的cookie # print(request.path) #获取接口路径/login # print(request.url_rule)#获取接口路径 # print(request.host) #获取host 127.0.0.1:5000 # print(request.host_url) #获取url http://127.0.0.1:5000/ #特殊提交方式数据获取 #Content-Type:application/json #request.form 、request.args 里面都没有数据 #request.json 获取application/json时提交的数据 #request.json() # Content-Type里面的类型无法被识别或者不包含form字眼。 request.data 获取原始请求体中的数据 数据类型为 b"" #Flask中的seesion,seesion存在内存中 #session 存在服务端的键值对 #cookie 存在客户端的键值对 data=request.form.to_dict() if data['username'] =="朱希博" and data['pwd'] == '12345': session['user']= data['username'] #设置一个seesion return redirect("/") else: return redirect("/login") @app.route("/") def index(): print(session.get('user')) return render_template("home.html") if __name__ == '__main__': app.run()