Django 静态文件的第三方库和插件
Django 静态文件的第三方库和插件有很多,以下是其中一些比较常用的:
- django-compressor:可以将多个 CSS 或 JavaScript 文件合并成一个,减少请求次数,提高页面加载速度。
代码演示:
{% load compress %}
{% compress css %}
<link rel="stylesheet" href="{% static 'css/style1.css' %}">
<link rel="stylesheet" href="{% static 'css/style2.css' %}">
{% endcompress %}
{% compress js %}
<script src="{% static 'js/script1.js' %}"></script>
<script src="{% static 'js/script2.js' %}"></script>
{% endcompress %}
- django-pipeline:类似于 django-compressor,也可以将多个 CSS 或 JavaScript 文件合并成一个,但是它还可以将 LESS 或 SASS 文件编译成 CSS 文件。
代码演示:
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE = {
'CSS_COMPRESSOR': 'pipeline.compressors.yuglify.YuglifyCompressor',
'JS_COMPRESSOR': 'pipeline.compressors.yuglify.YuglifyCompressor',
'CSS_PIPELINE_COMPILERS': (
'pipeline.compilers.less.LessCompiler',
),
'CSS_PIPELINE_CSS_SUFFIX': '.min.css',
'JS_PIPELINE_JS_SUFFIX': '.min.js',
'PIPELINE_ENABLED': True,
'PIPELINE_COLLECTOR_ENABLED': True,
'PIPELINE_COLLECTOR_TIMEOUT': 300,
'PIPELINE_COLLECTOR_MULTIPROCESS': True,
'PIPELINE_COLLECTOR_THREADS': 1,
'PIPELINE_COLLECTOR_VERBOSE': False,
'PIPELINE_COLLECTOR_MAX_ATTEMPTS': 1,
'PIPELINE_COLLECTOR_EXCLUDE': (),
'PIPELINE_COLLECTOR_INCLUDE_ORPHANS': False,
'PIPELINE_COLLECTOR_RERAISE': False,
'PIPELINE_DISABLE_WRAPPER': False,
'PIPELINE_JS_ARGUMENTS': '',
'PIPELINE_TEMPLATE_NAMESPACE': 'window.JST',
'PIPELINE_TEMPLATE_EXT': '.jst',
'PIPELINE_TEMPLATE_LANG': 'underscore',
'PIPELINE_TEMPLATE_FUNC': '_.template',
'PIPELINE_TEMPLATE_ENGINE': 'django',
'PIPELINE_COMPILERS': (
'pipeline.compilers.coffee.CoffeeScriptCompiler',
'pipeline.compilers.sass.SASSCompiler',
),
'ENABLED': True,
'PIPELINE_CSS': {
'main': {
'source_filenames': (
'css/main.less',
),
'output_filename': 'css/main.min.css',
'extra_context': {
'media': 'screen,projection',
},
},
},
'PIPELINE_JS': {
'main': {
'source_filenames': (
'js/jquery.js',
'js/main.coffee',
),
'output_filename': 'js/main.min.js',
},
},
}
- django-crispy-forms:可以简化 Django 表单的渲染,提高开发效率。
代码演示:
from crispy_forms.helper import FormHelper from crispy_forms.layout import Submit class ContactForm(forms.Form): name = forms.CharField() email = forms.EmailField() message = forms.CharField(widget=forms.Textarea) def __init__(self, *args, **kwargs): super(ContactForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_method = 'post' self.helper.add_input(Submit('submit', 'Submit'))
- django-favicon-plus:可以自动生成网站图标(favicon),可以自定义图标尺寸和样式。
代码演示:
{% load favicon %}
{% favicon "http://pidancode.com/static/img/favicon.png" %}
以上是一些常用的 Django 静态文件的第三方库和插件,不同的项目可能需要不同的库和插件,需要根据实际需求选择合适的库和插件。
相关文章