• Flask request和response


       

    Response

    1. # -*- coding: utf-8 -*-  
    2. from flask import Flask, redirect, render_template, jsonify, send_file  
    3.       
    4. app = Flask(__name__)  
    5.       
    6.       
    7. @app.route('/')  
    8. def index():  
    9.     return redirect('/login')  # 跳转,重定向  
    10.       
    11.       
    12. @app.route('/login')  
    13. def login():  
    14.     return render_template('login.html')  # 返回模板有浏览器渲染  
    15.       
    16.       
    17. @app.route('/json')  
    18. def json():  
    19.     data = {  
    20.         "name": 'peach'  
    21.     }  
    22.     return jsonify(data)  # 返回json标准字符串  
    23.       
    24.       
    25. @app.route('/send_files')  
    26. def send_files():  
    27.     return send_file('Dockerfile')  # 返回文件(打开文件,并返回文件内容,自动识别)  
    28.       
    29.       
    30. app.run(host='0.0.0.0'debug=True)  

       

    REQUEST

    1. Request是全局的需要导入  
    2.       
    3. from flask import Flask, request, render_template    
    4.       
    5. Requestfrom表单中取数据有两种方式  
    6.       
    7. 方式一:  
    8.     print(request.form.get('username'))    
    9. 方式二:  
    10.     print(request.form['username'])    
    11.       
    12.       
    13. 两者的区别,当没有'username'的时候,方式二会报错:Keyerror

    视图代码如下:  

    正确取值

    KerError错误:  

       

    Request对象参数解析

    1. @app.route('/login', methods=["POST"'GET'])  
    2. def login():  
    3.     print(request.path)  # 获取请求地址  
    4.     print(request.url)  # 获取完整http url  
    5.     print(request.host_url)  # http主机地址端口  
    6.     print(request.host)  # 主机地址端口  
    7.       
    8.     print(request.method)  # 获取请求对象  
    9.     print(request.form)   # 请求表单内数据,  request.form.to_dict() 之间转换为字典格式  
    10.     print(request.args)  # 请求地址参数提取可以用request.args.get()  
    11.     print(request.values)  # 所有的args地址参数和form表单内参数 to_dict() 之间转换为字典格式,通常用来查看数据  
    12.       
    13.     print(request.json)  # json数据,如果请求头的类型是json,自动把form的数据序列化为json  
    14.     print(request.data)  # 如果请求头的类型是无法识别的时候,请求体的数据将原始储存,是bytes  
    15.     print(request.cookies) # 获取cookies
    16.     print(request.headers) # 获取请求头
    17.     my_file = request.files.get('my-file')  
    18.     print(my_file)  
    19.     my_file.save(my_file.filename)  # 保存图片  
    20.       
    21.     return render_template('login.html')  

    HTML:

    1. <!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>  
    4.     <meta charset="UTF-8">  
    5.     <title>LOGIN</title>  
    6. </head>  
    7. <body>  
    8. <form action="/login?a=1&b=2", method="post", enctype="multipart/form-data">  
    9.     用户名<input type="text", name="username">  
    10.     密码<input type="text", name="password">  
    11.     文件<input type="file" name="my-file">  
    12.     <input type="submit", value="登陆">  
    13. </form>  
    14. </body>  
    15. </html>  

       

    运行结果如下:

    因为我用的是docker环境,文件保存如下:

  • 相关阅读:
    Tomcat8服务
    windows部署tomcat
    LINUX部署TOMCAT服务器
    线程安全这么回答才牛逼(转)
    读取文件夹下的所有文件
    Mycat简单配置
    删除服务端文件
    nginx搭建文件服务器
    SERVER.MAPPATH
    存储过程与表的关系
  • 原文地址:https://www.cnblogs.com/py-web/p/11988296.html
Copyright © 2020-2023  润新知