官术网_书友最值得收藏!

Organization of static files

Organizing static files such as JavaScript, stylesheets, images, and so on efficiently is always a matter of concern for all web frameworks.

How to do it…

Flask recommends a specific way to organize static files in our application:

my_app/
    - app.py
    - config.py
    - __init__.py
    - static/
       - css/
        - js/
        - images/
            - logo.png

While rendering them in templates (say, the logo.png file), we can refer to the static files using the following line of code:

<img src='/static/images/logo.png'>

How it works…

If there exists a folder named static at the application's root level, that is, at the same level as app.py, then Flask will automatically read the contents of the folder without any extra configuration.

There's more…

Alternatively, we can provide a parameter named static_folder to the application object while defining the application in app.py:

app = Flask(__name__, static_folder='/path/to/static/folder')

In the img src path in the How to do it… section, static refers to the value of static_url_path on the application object. This can be modified as follows:

app = Flask(
    __name__, static_url_path='/differentstatic',
    static_folder='/path/to/static/folder'
)

Now, to render the static file, we will use the following:

<img src='/differentstatic/logo.png'>

Note

It is always a good practice to use url_for to create the URLs for static files rather than explicitly define them:

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

We will see more of this in the upcoming chapters.

主站蜘蛛池模板: 岐山县| 卓资县| 湖南省| 珠海市| 乌海市| 大丰市| 高安市| 遂溪县| 高陵县| 梨树县| 宿迁市| 汶川县| 左贡县| 鹤庆县| 易门县| 平江县| 大关县| 大渡口区| 丁青县| 蒲城县| 吴川市| 武汉市| 东台市| 凤山市| 潮安县| 遂昌县| 盐山县| 四川省| 大埔区| 雷波县| 黎平县| 宿州市| 甘谷县| 瑞安市| 湛江市| 芷江| 运城市| 遵义市| 永宁县| 海兴县| 海门市|