zoukankan      html  css  js  c++  java
  • Flask

    Django ,Flask ,Tornado框架之间的比较:

    下载Flask

    pip install Flask

    第一个Flask程序:

    from flask import Flask #导入模块
    app = Flask("__name__")  #实例化一个Flask对象
    @app.route("/")   #装饰器
    def index():   #视图
        reyurn "Hello,Word"
    
    app.run(debug=True)   #启动
    注意:debug=True,以后修改完代码不用重复启动

    Flask之三剑客

    render,redirect,HttpResponse

    HttpResponse: return "Hello World" 返回字符串至客户端
    render : return render_template("login.html")
    与Django中的 render 使用一致 返回模板由浏览器渲染
    redirect: return redirect("/login") # 302
    跳转,重定向URL

    Flask序列化:jsonify

    from flask import jsonify
    retrun jsonify({name:111}) # 返回json标准的字符串 
    Content-Type:application/json

    打开文件并返回文件内容(自动识别文件格式) send_file(path)

    request请求:

    • 请求方式

    表示:只有post和个体请求

    • request.method   请求方式
    • request.from   存放FormData中的数据 to_dict序列化成字典
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="" method="post">
        用户名 : <input type="text" name="user">
        密码 : <input type="password" name="pwd">
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    
    HTML
    print(request.form) # ImmutableMultiDict([('user', 'jam'), ('pwd', '123')])
    # ImmutableMultiDict 就当作他是一个dict
    print(request.form["user"]) # jam
    print(request.form.get("pwd")) # 123
    •  request.args  获取存放在URL中的数据

    print(request.args) #  ImmutableMultiDict([('user', 'jam'), ('pwd', '123')]
    print(request.args["user"])  # jam
    print(request.args.get("pwd")) # 123
    •  request.url   获取完整的路径
    • request.path 获取路由地址
    • request.host 获取主机地址
    • request.values   获取 FormData and URL中的数据 不要用to_dict

    to_dict() 方法可以直接将我们的参数全部转化为字典形式

    print(request.values.to_dict())  # {'user': 'jam', 'pwd': '123'}
    # 注意这里
    # 如果url和form中的Key重名的话,form中的同名的key中value会被url中的value覆盖
    •  request.data  如果提交时请求头中的Content-Type 无法被识别 将请求体中的原始数据存放 byte
    • request.cookies  获取cookies中的数据,
    • request.headers  获取到请求头
    • request.files  上传文件
    print(request.files)  # ImmutableMultiDict([('file', <FileStorage: 'jam.txt' ('text/plain')>)])
        print(request.files["file"])  # <FileStorage: 'jam.txt' ('text/plain')>
        my_file = request.files.get("my_file")
        my_file.save("jam.txt")  # 保存文件,里面可以写完整路径+文件名

     Jinja2渲染

    {{}} 主要用来引用变量,执行函数
    {%%}  逻辑代码放在这里
    |safe Markup    安全标签字符串
    @app.template_global()
    @app.template_filter()
  • 相关阅读:
    在 Linux 下查看硬件配置
    对于 ASP.NET 在 IIS 上的一些高并发处理配置
    处理 目标主机SSH服务存在RC4、CBC或None弱加密算法 的问题
    处理 Windows Server 中 CVE-2016-2183(SSL/TLS) 漏洞的方法
    在 Windows Server 2008 R2下部署 asp.net core 3.1 网站遇到的问题
    在 Windows Server 2012 安装最新版 SSMS 遇到错误 0x80070005 -Acess Denied
    在 CentOS 中安装 7zip
    在 npm run build 时遇到报错 [BABEL] No "exports" main defined in
    【性能项目实战:k8s+微服务】热门测试技术,提升职场竞争力(持续更新中。。。)
    windows下安装skywalking8.6.0(用于本地开发调试代码)
  • 原文地址:https://www.cnblogs.com/wqzn/p/10235787.html
Copyright © 2011-2022 走看看