Flask的request形式

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

 

posted @ 2020-12-11 15:21  西西cc  阅读(159)  评论(0编辑  收藏  举报