美文网首页
Django小部件资源

Django小部件资源

作者: Chaweys | 来源:发表于2020-11-08 09:51 被阅读0次

资源
资源指应用于表单的CSS和JavaScript文件。
当定义表单或小部件时,可以在Media子类中为其定义资源。在渲染表单时,Django会将资源文
件包含到HTML中。

小部件资源
通过扩展小部件定义表单资源的基本格式,如下:
class 自定义小部件类名(froms.内置小部件类名):
    class Media:  #定义Media子类
        css={'设置类型':('CSS资源文件URL')}
        js=('JavaScript资源文件URL')
        
(1)、Media子类的css属性用于设置CSS资源。css属性中的键设置CSS资源中的样式及适用的设备类型
(2)、资源文件的URL可以使用相对路径或绝对路径。
(3)、CSS和JavaScript资源文件属于静态资源,通常将其放置在项目的static目录中。

可用的类型名称如下:
all:       默认,适用所有设置
aural:     语音合成器
braille:   盲文反馈装置
projection:投影仪
print:     打印预览模式或打印页面
screen:    计算机屏幕
tty:       电传打字机以及类似的使用等宽字符网络的设备
tv:        电视机类型设备

举例1:
小部件资源通过实例对象的media属性来访问,其被渲染为<link ...>元素。
>>> class myTextInput(forms.TextInput):
...   class Media:
...     css={'all':('./static/diyform.css')}
...
>>> text=myTextInput()
>>> print(text.media)
结果:获得的是返回<link ...>的元素
<link href="/" type="text/css" media="all" rel="stylesheet" />
<link href="/static/d" type="text/css" media="all" rel="stylesheet" />
<link href="/static/a" type="text/css" media="all" rel="stylesheet" />
<link href="/static/t" type="text/css" media="all" rel="stylesheet" />
<link href="/static/i" type="text/css" media="all" rel="stylesheet" />
<link href="/static/y" type="text/css" media="all" rel="stylesheet" />
<link href="/static/f" type="text/css" media="all" rel="stylesheet" />
<link href="/static/o" type="text/css" media="all" rel="stylesheet" />
<link href="/static/r" type="text/css" media="all" rel="stylesheet" />
<link href="/static/m" type="text/css" media="all" rel="stylesheet" />
<link href="/static/" type="text/css" media="all" rel="stylesheet" />
<link href="/static/c" type="text/css" media="all" rel="stylesheet" />
<link href="/static/s" type="text/css" media="all" rel="stylesheet" />



举例2:
当表单使用了带有资源的小部件时,也可通过表单对象的media属性获得资源:
>>> class test(forms.Form):
...   name=forms.CharField(widget=myTextInput)   #小部件的值就是上方定义的小部件类名
...
>>> a=test()
>>> print(a.media)
<link href="/" type="text/css" media="all" rel="stylesheet" />
<link href="/static/d" type="text/css" media="all" rel="stylesheet" />
<link href="/static/a" type="text/css" media="all" rel="stylesheet" />
<link href="/static/t" type="text/css" media="all" rel="stylesheet" />
<link href="/static/i" type="text/css" media="all" rel="stylesheet" />
<link href="/static/y" type="text/css" media="all" rel="stylesheet" />
<link href="/static/f" type="text/css" media="all" rel="stylesheet" />
<link href="/static/o" type="text/css" media="all" rel="stylesheet" />
<link href="/static/r" type="text/css" media="all" rel="stylesheet" />
<link href="/static/m" type="text/css" media="all" rel="stylesheet" />
<link href="/static/" type="text/css" media="all" rel="stylesheet" />
<link href="/static/c" type="text/css" media="all" rel="stylesheet" />
<link href="/static/s" type="text/css" media="all" rel="stylesheet" />

相关文章

网友评论

      本文标题:Django小部件资源

      本文链接:https://www.haomeiwen.com/subject/oepfbktx.html