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()
  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/wqzn/p/10235787.html
Copyright © 2011-2022 走看看