Django的JavaScript URL处理,不会造成伤害。
项目描述
Javascript url handling for Django that doesn’t hurt.
概述
Django JS Reverse 是一个小的 django 应用,使得在javascript中处理命名 URL 变得简单且不烦人。
例如,您可以在javascript中检索命名 URL
urls.py
url(r'^/betterliving/(?P<category_slug>[-\w]+)/(?P<entry_pk>\d+)/$', 'get_house', name='betterliving_get_house'),
在javascript中像这样
Urls.betterliving_get_house('house', 12)
结果
/betterliving/house/12/
变更日志
- 0.9.0
新功能:支持Python 3.7
- 0.8.2
- 0.8.1
修复:#53 测试文件夹仍然存在于构建中。 => 在发布制作命令中添加了清理。
- 0.8.0
新功能:支持Django 2.0: #58 感谢 wlonk
修复:#53 不要将测试文件夹作为单独的文件夹安装。将其移入django_js_reverse命名空间。
- 0.7.3
新功能:支持Django 1.10
更改:将“production”分支重命名为“master”
修复:#48 - “在README中的全局对象名称中将False更改为‘window’。”感谢 karamanolev
需求
Python 版本 |
Django 版本 |
---|---|
3.7 |
2.0, 1.11, 1.10, 1.9, 1.8 |
3.6 |
2.0, 1.11, 1.10, 1.9, 1.8 |
3.5 |
2.0, 1.11, 1.10, 1.9, 1.8 |
3.4 |
2.0, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5 |
2.7 |
1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5 |
安装
使用 pip 进行安装…
pip install django-js-reverse
… 或者从 GitHub 克隆项目。
git clone https://github.com/ierror/django-js-reverse.git
将 'django_js_reverse' 添加到您的 INSTALLED_APPS 设置中。
INSTALLED_APPS = ( ... 'django_js_reverse', )
与 webpack 一起使用
使用 npm 进行安装
npm install --save django-js-reverse
包含无缓存视图…
urlpatterns = patterns('', url(r'^jsreverse.json$', 'django_js_reverse.views.urls_json', name='js_reverse'), )
… 或者一个提供 URLs JSON 的缓存视图
from django_js_reverse import views urlpatterns = patterns('', url(r'^jsreverse.json$', cache_page(3600)(views.urls_json), name='js_reverse'), )
将 JavaScript 包含在您的包中
// utils/djangoReverse.mjs import _ from 'lodash/fp'; import djangoJsReverse from 'django-js-reverse'; export default _.once( async () => { const res = await fetch('/jsreverse.json'); const data = await res.json(): return djangoJsReverse(data); } )
// somePlace.mjs import djangoReverse from './utils/djangoReverse'; (async () => { const urls = await djangoReverse; const url = urls.someViewName('some-arg'); ... })();
作为静态文件使用
首先通过以下方式生成静态文件:
./manage.py collectstatic_js_reverse
如果您更改了某些 URL 或添加了应用程序并希望更新 reverse.js 文件,请再次运行该命令。
然后,将文件添加到您的模板中
<script src="{% static 'django_js_reverse/js/reverse.js' %}"></script>
与视图一起使用
包含无缓存视图…
urlpatterns = patterns('', url(r'^jsreverse/$', 'django_js_reverse.views.urls_js', name='js_reverse'), )
… 或者一个提供 URLs JavaScript 的缓存视图
from django_js_reverse.views import urls_js urlpatterns = patterns('', url(r'^jsreverse/$', cache_page(3600)(urls_js), name='js_reverse'), )
在模板中包含 JavaScript
<script src="{% url js_reverse %}" type="text/javascript"></script>
或者,如果您正在使用 Django > 1.5
<script src="{% url 'js_reverse' %}" type="text/javascript"></script>
作为模板标签使用
{% load js_reverse %} <script type="text/javascript" charset="utf-8"> {% js_reverse_inline %} </script>
使用 JavaScript 中的 URLs
如果您的 URL 名称是有效的 JavaScript 标识符([$A-Z_][-Z_$]*)i,您可以通过点表示法访问它们
Urls.betterliving_get_house('house', 12)
如果命名的 URL 包含无效的标识符,请使用方括号表示法代替
Urls['betterliving-get-house']('house', 12) Urls['namespace:betterliving-get-house']('house', 12)
您还可以传递 JavaScript 对象以匹配以下示例中的关键字参数
Urls['betterliving-get-house']({ category_slug: 'house', entry_pk: 12 }) Urls['namespace:betterliving-get-house']({ category_slug: 'house', entry_pk: 12 })
选项
可选地,您可以通过 django 设置覆盖用于访问命名 URL 的默认 JavaScript 变量 'Urls'
JS_REVERSE_JS_VAR_NAME = 'Urls'
可选地,您可以通过更改用于访问命名 URL 的 JavaScript 变量附加到的全局对象的名称来更改。默认是 this
JS_REVERSE_JS_GLOBAL_OBJECT_NAME = 'window'
可选地,您可以通过 django 设置禁用生成的 JavaScript 文件的压缩
JS_REVERSE_JS_MINIFY = False
默认情况下,包含所有命名空间
JS_REVERSE_EXCLUDE_NAMESPACES = []
要将任何命名空间从生成的 JavaScript 文件中排除,请将它们添加到 JS_REVERSE_EXCLUDE_NAMESPACES 设置中
JS_REVERSE_EXCLUDE_NAMESPACES = ['admin', 'djdt', ...]
如果您只想包含特定命名空间,请将它们添加到 JS_REVERSE_INCLUDE_ONLY_NAMESPACES 设置中提示:* 使用 “” (空字符串) 为无命名空间的 URL* 使用 “foo0” 来仅包含来自 “foo” 命名空间(例如,“foo:bar”)的 URL,而不是任何子命名空间(例如,“foo:bar”)
JS_REVERSE_INCLUDE_ONLY_NAMESPACES = ['poll', 'calendar', ...]
如果您在子路径下运行应用程序,collectstatic_js_reverse 需要处理此问题。在您的 django 设置中定义前缀
JS_REVERSE_SCRIPT_PREFIX = '/myprefix/'
默认情况下,collectstatic_js_reverse 将其输出(reverse.js)写入项目中的 STATIC_ROOT。您可以更改输出路径
JS_REVERSE_OUTPUT_PATH = 'some_path'
运行测试套件
make test
许可证
联系
享受吧!
项目详情
下载文件
下载适合您平台的项目。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
哈希值 for django_js_reverse_webpack-0.0.1-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7789e74853110298261ecab572755a1503ac2d8497fadc8471b6708d3d757ea7 |
|
MD5 | f6af1985efb282e1458f61b9b7026cc2 |
|
BLAKE2b-256 | 2f76709b38587a81dde89a25b238a2c70466931b57f92b0e08a24cb45892b882 |