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()
  • 相关阅读:
    The OpenGL pipeline
    HLS协议实现
    用C++设计一个不能被继承的类
    Ansible@一个高效的配置管理工具--Ansible configure management--翻译(八)
    史上最简单的软件破解——5行脚本代码完美破解99%的过期软件
    oracle11g创建新的用户和改动最大连接数
    【SICP感应】1 工艺和替代模式
    ant利用先进,ant订单具体解释,ant包,ant包装删除编译jar文件
    SqlServer表EXCEL数据复制的另一种方法
    【摘要干】如何执飞前写商业计划?
  • 原文地址:https://www.cnblogs.com/wqzn/p/10235787.html
Copyright © 2011-2022 走看看