django secure input提供自定义表单字段来呈现所见即所得编辑器,而不是常规的文本区域。它也帮你清理html。由于它的超级安全默认值,您不想修改它的白名单规则。
django-secure-input的Python项目详细描述
让你的用户在你的文本区域中输入HTML,而不会失去任何睡眠。 django secure input清理用户的输入,并且只允许一些标记 解释为HTML并转义其余部分。默认情况下,不允许使用<;脚本>;标记。
要求/安装
django安全输入需要python 2.6-2.7或3.2+。它还要求django>;=1.4 还有漂白剂。
安装django secure input最简单的方法是使用pip:
pip install django-secure-input
将其添加到您的安装应用程序:
INSTALLED_APP += ('secure_input')
字段
在您的表单中使用我们提供的自定义表单字段之一,您就可以全部设置。
- SafeCharFieldInput
- Textarea that allows saving html.
- WYSIWYGField
- wysiwyg widget
- MiniWYSIWYGField
- wysiwyg widget (limiited tools)
默认设置
提供的默认值 通过我们的验证方法可以覆盖,设置您自己的覆盖 您的settings.py文件:
ALLOWED_TAGS: Tuple of allowed tags, for example: (‘p’, ‘h2’, ‘h3’).
- ALLOWED_STYLES: Tuple of inline style allowable in your html, for
- example: (‘font’, ‘font-size’, ‘color’).
- ALLOWED_ATTRIBUTES: A dict of tags -> attributes, for example:
- {‘a’: [‘href’, ‘title’], ‘*’: [‘class’]}
示例
开始使用自定义字段的最简单方法:
from django import forms from secure_input.fields import MiniWYSIWYGField class MySecureForm(forms.ModelForm): text = MiniWYSIWYGField() class Meta: model = MyModel
模板
确保在模板中包含以下css和js文件 正在呈现您的表单。
在模板{{form.media.css}}中:
- <link href="{{ STATIC_URL }}secure_input/bootstrap/css/bootstrap.css" rel="stylesheet" type="css/text"> - <link href="{{ STATIC_URL }}secure_input/font-awesome/css/font-awesome.css" rel="stylesheet" type="css/text"> - <link href="{{ STATIC_URL }}secure_input/css/basicEditor.css" rel="stylesheet" type="css/text">
以及{{form.media.js}}:
- <script src="{{ STATIC_URL }}secure_input/js/libs/jquery.js" type="text/javascript"></script> - <script src="{{ STATIC_URL }}secure_input/bootstrap/js/bootstrap.min.js" type="text/javascript"></script> - <script src="{{ STATIC_URL }}secure_input/bootstrap-wysiwyg/external/jquery.hotkeys.js" type="text/javascript"></script> - <script src="{{ STATIC_URL }}secure_input/bootstrap-wysiwyg/bootstrap-wysiwyg.js" type="text/javascript"></script> - <script src="{{ STATIC_URL }}secure_input/js/plugin.js" type="text/javascript"></script>
最后,需要初始化js插件:
$("#commentForm").secureInput();
文档
有关使用django安全输入的其他文档,请参见 Read The Docs。
运行测试
您可以使用via运行测试:
python setup.py test
或:
python runtests.py
许可证
Django安全输入是根据BSD许可证发布的。见 LICENSE文件了解更多详细信息。