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()