zoukankan      html  css  js  c++  java
  • flask基础---第三篇

    flask中request的一些方法

    • 首先from flask import request

    1.request.path

    2.request.host

    3.request.host_url 

    from flask import Flask, request
    
    app = Flask(__name__)
    @app.route('/')
    def index():
        print(request.path) #/
        print(request.host) #127.0.0.1:5000
        print(request.host_url) #http://127.0.0.1:5000/
        return 'hello'
    if __name__ == '__main__':
        app.run(debug=True)

    4.request.method   获取请求方式

    from flask import Flask, request
    
    app = Flask(__name__)
    @app.route('/')
    def index():
        print(request.method) #GET
        if request.method=="GET":
            print('use GET method') #use GET method
        return 'hello'
    if __name__ == '__main__':
        app.run(debug=True)

    5.request.args         获取url参数

    • 获取字典的key值有两种方法,分别是索引['id']和get方法,如果索引的value值错误会出现一个keyerro的错误,如果是get的value的值错误会是None
    • request.args.get('id')   #拿到url单独的一个参数
    • request.args.to_dict()  #得到一个字典
    • request.args.to_dict().get('id') #字典通过get方法获取值
    • request.args.to_dict()['id']  #字典通过索引获取值
    from flask import Flask, request
    app = Flask(__name__)
    @app.route('/')
    def index():
        #获取url中的参数,比如url为http://127.0.0.1:5000/?id=1&name=2,通过request.args得到一个
    #类似于字典的元组ImmutableMultiDict([('id', '1'), ('name', '2')])
    print(request.args) #ImmutableMultiDict([('id', '1'), ('name', '2')]) print(request.args.get('id')) #拿到了id的值1 print(request.args.get('name')) #拿到了name的值2 arg=request.args.to_dict() print(arg) #拿到了一个字典{'id': '1', 'name': '2'} print(arg['id']) #通过索引拿到了id的值1 print(arg.get('id')) #通过get方法拿到了id的值1 return 'hello' if __name__ == '__main__': app.run(debug=True)

    6.request.form          获取FormData 数据

    • request.form.to_dict()   #获取一个登陆信息的字典

    7.request.files            接收FormData中的文件

    • request.files.to_dict() #生成一个字典
    • request.file.get('文件名')  # 通过文件名获取文件
    • request.file.get('文件名').save(file.filename) #通过文件名获取文件之后以原文件名保存到当前目录下
    • request.file.get('文件名').save('新文件名') #通过文件名获取文件之后以新文件名保存到当前目录下
    from flask import Flask, request, render_template
    app = Flask(__name__)
    @app.route('/login',methods=['POST','GET']) #如果出现状态码405是因为没有加上methods方法
    def login():
        if request.method=="GET":
            return render_template('login2.html')
        else:
            print(request.form)#获得ImmutableMultiDict([('username', '123')])
            print(request.form.to_dict())#获得一个字典{'username': '123'}
            print(request.files)#获取ImmutableMultiDict([('my_file', <FileStorage: '1.jpg' ('image/jpeg')>)])
            print(request.files.to_dict())#获取字典{'my_file': <FileStorage: '1.jpg' ('image/jpeg')>}
            print(request.files.get('my_file'))#获取key值<FileStorage: '1.jpg' ('image/jpeg')>
            file=request.files.get('my_file')
            file.save(file.filename) #保存文件到目录下
            return '登录成功'
    if __name__ == '__main__':
        app.run(debug=True)
    //login.html页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="" method ='post' enctype="multipart/form-data">#enctype="multipart/form-data
        <input type="text" name="username">#输入框
        <input type="file" name="my_file"> #提交文件的选择框
        <input type="submit" value="提交">#按钮
    </form>
    </body>
    </html>
    
    
    
     

    8.request.json          请求头 带有Content-Type:application/json   请求体中的数据自动序列化至此,生成一个字典,而且在data中依然

               存储着以byte形式的原始数据
    9.request.data           获取请求体中的原始数据   是一个字节流b"”

    10request.values       这个是获取args+form  慎用,有坑

  • 相关阅读:
    第一次实习项目总结
    javascript整理笔记(一)-----写项目的小技巧
    Vue(项目踩坑)_These dependencies were not found: * !!vue-style-loader!css-loader?{"sourceMap":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{"vue"
    JS(递归-记一次面试题)-写一个get函数,get({a:1}, 'a')输出1,get({a : {b:2}},‘a.b’)输出2,按照此规律写一个函数
    html5_音视频的兼容性写法
    canvas_画出图片的马赛克
    项目(踩坑)_移动端在使用touch滑动事件的时候会出现抖动现象
    vue+mongoose+node.js项目总结第七篇_express框架中使用socket.io插件实现在线聊天功能(前端消息发送-后端接收逻辑)
    网址
    RAII Theory && auto_ptr
  • 原文地址:https://www.cnblogs.com/l1222514/p/10697642.html
Copyright © 2011-2022 走看看