将 Angular 构建的 index.html 文件转换为 Django 模板语法
项目描述
ng2django
这是一个简单的 Python 工具,可以将 Angular2+ 构建的 HTML 文件转换为 Django 模板语言。通过这种方式,可以将静态文件提供给由 Django 项目提供的 Agnular 应用程序。
该脚本基本上做了两件事:
{% load static %}
在文件顶部添加标签- 将和标签的值
href
和src
属性更改为link
script
{% static "<path-to-the-file>" %}
依赖项
该脚本使用 Beutifulsoup4。您可以通过运行来安装它pip install -r requirements.txt
。
安装
赶紧跑$ pip install ng2django
用法
构建您的 Angular 应用程序并将文件放在<Django-project-root>/<app>/static/<optional-subdirectory>/
.
该脚本采用两个位置参数:
source
:要转换的 HTML 文件的路径。dest
:您希望保存 Django 模板文件的位置。
然后你可以运行
$ ng2django <Django-project-root>/<app>/static/index.html <Django-project-root>/<app>/templates/index.html
如果您将文件直接存储在 Django 应用程序static
和templates
目录中(不推荐),或者
$ ng2django <Django-project-root>/<app>/static/<optional-subdirectory>/index.html <Django-project-root>/<app>/templates/<optional-subdirectory>/index.html -s <optional-subdirectory>
如果您正在使用这些路径的某个子目录。
可选参数
短的 | 长 | 描述 |
---|---|---|
-s<subdir> |
--子目录<subdir> |
<Django-app>/static/ 包括存储静态文件的子路径。 |
-css<cssdir> |
--cssdir<cssdir> |
<Django-app>/static/<optional-subdir>/css/ 包括存储静态 CSS 文件的子路径。 |
-js<jsbdir> |
--jsdir<jsir> |
<Django-app>/static/<optional-subdir>/js/ 包括存储静态 JS 文件的子路径。 |
-img<imgbdir> |
--imgdir<imgdir> |
<Django-app>/static/<optional-subdir>/img/ 包括存储静态 IMAGE 文件的子路径。 |
-n | --nodelete | 转换后不要删除源文件。 |
-p | - 漂亮的 | 创建一个更易于阅读的 dest 文件。 |
推荐的设置和使用
在你的 Angular 项目中打开你的package.json
文件。在 下scripts
,更改build
为
ng build --prod --output-path <Your-django-project-root>/<Django-App>/static/ng
.
在下面添加一个postbuild
键script
并将值设置为
ng2django <Your-django-project-root>/<Django-App>/static/ng/index.html <Your-django-project-root>/<Django-App>/templates/ng/index.html -s ng
.
或者,如果您在静态使用 args 的单独目录中有 css / js / images: -css css -js js -img img
ng2django <Your-django-project-root>/<Django-App>/static/ng/index.html <Your-django-project-root>/<Django-App>/templates/ng/index.html -s ng -css css -js js -img img
。
运行npm run build
,您的 Angular JS 和 CSS 文件将保存到您的 Django 应用程序的静态目录中。然后,此脚本将运行并转换您的 HTML 文件并将其保存在 Django 应用程序的模板目录中。
贡献
欢迎贡献 - 提交问题/拉取请求。
推送到 PyPi
使用这些命令在 PyPi 上发布
rm -rf dist/ build/
python setup.py sdist
twine upload dist/*