Flask:Flask的模板系统和静态文件

Posted xmcwm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask:Flask的模板系统和静态文件相关的知识,希望对你有一定的参考价值。

1、Flask模板系统

  Django框架有自己独立的模板系统,而Flask是没有的,Flask默认采用jinjia2模板系统,jinjia2是仿写Django模板系统的一个第三方模块,在安装Flask的时候,jinjia2被以依赖包的形式安装到了环境里,下面介绍在Flask中模板渲染的步骤:

(1)加载html文件

  Flask中使用render_template方法来加载HTML文件,HTML默认指向当前脚本同级目录templates下的文件

from flask import Flask
from flask import render_template

# 创建一个应用
app = Flask(__name__)


@app.route("/index/", methods=["GET", "POST"])
def index():
    return render_template("index.html")


if __name__ == __main__:
    app.run(host="127.0.0.1", port=5000, debug=True)

  使用render_template方法前需要从flask将该方法导入,看下方源代码,template_folder参数的默认值为"templates",当浏览器访问路由"http://127.0.0.1:5000/index/"时,视图函数将返回脚本同级目录templates下的index.html文件,

    def __init__(
        self,
        import_name,
        static_url_path=None,
        static_folder="static",
        static_host=None,
        host_matching=False,
        subdomain_matching=False,
        template_folder="templates",
        instance_path=None,
        instance_relative_config=False,
        root_path=None,
    ):

 

(2)传递参数

a、常规传参

@app.route("/index/", methods=["GET", "POST"])
def index():
    return render_template("index.html", name = "index")

b、解包传参

@app.route("/index/", methods=["GET", "POST"])
def index():
    name = "index"
    return render_template("index.html", **locals())

(3)进行渲染

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    这是一个{{name}}文件
</body>
</html>

  前端页面接收后台传递变量的方式与Django模板系统一致

效果展示:

技术图片

2、Flask静态文件

(1)静态文件介绍

  静态文件指的是js文件、css文件、image图片等,在Flask当中,静态文件默认放在脚本同级的static目录下,如下源码所示,static_folder参数的默认值为"static"

def __init__(
        self,
        import_name,
        static_url_path=None,
        static_folder="static",
        static_host=None,
        host_matching=False,
        subdomain_matching=False,
        template_folder="templates",
        instance_path=None,
        instance_relative_config=False,
        root_path=None,
    ):

(2)前端文件静态目录的修改

  在原来静态文件路径的基础上在路径开头加上"/static/"

<link rel="shortcut icon" type="image/x-icon" href="/static/img/common/icon/ome.icon.linklogo.png">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <link rel="stylesheet" href="/static/css/iconfont.css" />
        <link rel="stylesheet" href="/static/css/ome.style.css" />
        <link rel="stylesheet" href="/static/css/ome.style.dif.css" />
        <link rel="stylesheet" href="/static/css/ome.index.css" />

 

以上是关于Flask:Flask的模板系统和静态文件的主要内容,如果未能解决你的问题,请参考以下文章

3. Flask 静态文件模板文件设置

使用 Vue + Flask 搭建单页应用

12_关于flask中的宏

Flask从入门到精通之静态文件

flask 配置文件 路由 视图 模板 中间件

如何把css,js文件发布到服务器上flask