zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    凯撒密文的破解编程实现
    微软ping命令的源代码
    从编程到入侵
    永远的后门
    永远的后门
    奇妙的Base64编码
    用端口截听实现隐藏嗅探与攻击(二)
    奇妙的Base64编码
    Liferea 1.1.2
    Equinox Desktop Environment 1.1
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14120535.html
Copyright © 2011-2022 走看看