我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

flask作为python世界里面的微型web框架,除了提供通常意义上的api功能外,也是可以用于展示图片及网页的。那么,本文中,就对flask展示图片等静态资源及展示html页面,做简单的讨论。

苏南大叔:flask框架,如何定义静态资源文件的位置?如何调用? - flask-static
flask框架,如何定义静态资源文件的位置?如何调用?(图4-1)

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述flask如何调用静态资源。测试环境:win10python@3.6.8flask@2.0.3

基本情况

flask框架的基本介绍,flask框架响应get或者post请求,见下面的链接:

flask框架官方网站:

苏南大叔:flask框架,如何定义静态资源文件的位置?如何调用? - flask-github
flask框架,如何定义静态资源文件的位置?如何调用?(图4-2)

本文涉及的模版引擎Jinja2,官方网站如下:

定义静态资源

如果要自定义静态资源的路径的话,就需要修改flask.Flask()的函数调用。

import flask
from flask import render_template
# app = flask.Flask(__name__)
app = flask.Flask(__name__, template_folder="templates", static_folder="static", static_url_path="/static")
if __name__ == '__main__':
    app.run(port=8888, debug=True, host='127.0.0.1')

苏南大叔:flask框架,如何定义静态资源文件的位置?如何调用? - 静态资源设置
flask框架,如何定义静态资源文件的位置?如何调用?(图4-3)

这里的Flask函数,有三个新的参数:

  • template_folder,用于放置模版.html文件。
  • static_folder,用于放置img/css/js等静态文件。
  • static_url_path,这个就是用于访问资源的时候的url的部分。

所以,需要两个文件夹templatesstatic,使用/static/xxxxx.png来访问对应静态文件资源。

渲染html页面

app.py文件中,增加对应的render_template()函数。

from flask import render_template
@app.route("/")
def index():
    return render_template("index.html")

html页面调用静态资源

index.html文件放到templates文件夹里面,定义如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<img src="/static/logo.png"/>
</body>
</html>

苏南大叔:flask框架,如何定义静态资源文件的位置?如何调用? - 引擎模版调用
flask框架,如何定义静态资源文件的位置?如何调用?(图4-4)

可以使用传统的方式调用静态资源,而flask默认是支持Jinja2渲染的。所以,也可以使用对应的语法。那么,使用这种语法的代码,如下:

<img src="{{url_for('static',filename='logo.png')}}" />

这里就是在模版里面,使用url_for()函数,调用的相关的静态资源。

相关文章

综述

本文主要描述的就是flask的三个参数,如何访问静态资源,顺便描述了一下模版渲染引擎Jinja2。更多flask相关经验文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    flask