Python:Flask-Assets打包js和css文件

简介: Python:Flask-Assets打包js和css文件


Flask-Assets 基于 webassets,个人感觉是Python版的webpack

安装

pip install Flask-Assets

使用示例

目录结构

.
├── __init__.py
├── run.py                     # 入口文件
├── static
│   ├── css
│   │   ├── common-1.css
│   │   ├── common-2.css
│   │   └── common.css        # 打包后的css文件
│   └── js
│       ├── common-1.js
│       ├── common-2.js
│       └── common.js         # 打包后的js文件
└── templates
    └── index.html

run.py

# -*- coding: utf-8 -*-
from flask import Flask, render_template
from flask_assets import Environment, Bundle
app = Flask(__name__)
# 调试环境不打包
app.config['ASSETS_DEBUG'] = True
# 打包配置
assets_env = Environment(app)
common_js = Bundle(
    'js/common-1.js',
    'js/common-2.js',
    filters='jsmin',
    output='js/common.js')
common_css = Bundle(
    'css/common-1.css',
    'css/common-2.css',
    filters='cssmin',
    output='css/common.css')
# 注册打包文件
assets_env.register('common_js', common_js)
assets_env.register('common_css', common_css)
# 路由
@app.route('/')
def hello_world():
    return render_template('index.html')
if __name__ == '__main__':
    app.run(debug=True)

static/css/common-1.css

.box-1{
    color: red;
}

static/css/common-2.css

.box-2{
    color: grey;
}

static/js/common-1.js

function foo1() {
}

static/js/common-2.js

function foo2() {
}

templates/index.html

{% assets "common_js" %}
    <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}
{% assets "common_css" %}
    <link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
{% endassets %}

输出

http://127.0.0.1:5000/


ASSETS_DEBUG=True

<script type="text/javascript" src="/static/js/common-1.js"></script>
<script type="text/javascript" src="/static/js/common-2.js"></script>
<link rel="stylesheet" type="text/css" href="/static/css/common-1.css" />
<link rel="stylesheet" type="text/css" href="/static/css/common-2.css" />

ASSETS_DEBUG=False

<script type="text/javascript" src="/static/js/common.js?207d589d"></script>
<link rel="stylesheet" type="text/css" href="/static/css/common.css?30e0ca9e" />

/static/css/common.css

.box-1{color:red}.box-2{color:grey}

/static/js/common.js

function foo1(){}
function foo2(){}

参考

flask assets压缩静态文件(flask 111)

相关文章
|
10月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1715 68
|
11月前
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
872 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
Shell 开发者 Docker
Python文件打包:一站式指南
本文深入探讨Python文件打包的各种方法,从基础的zip和tar工具到高级的setuptools、PyInstaller、cx_Freeze等,涵盖Docker镜像、虚拟环境及自包含可执行文件的打包方式。通过示例代码与详细解析,帮助开发者根据项目需求选择合适的打包方案,提升代码分发与部署效率。内容全面,适合各水平读者学习参考。
1617 7
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
731 33
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
343 24
|
JavaScript 前端开发
页面滚动触发css3动画js插件
delighters.js是一款页面滚动触发css3动画js插件。该js插件可以在页面向下滚动时,为进入浏览器视口的元素制作各种炫酷的CSS3动画效果。
283 13
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
301 3
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
260 0

推荐镜像

更多