为django模型提供textformatfield,并允许使用简单的过滤器构建文本格式。

django-textformat的Python项目详细描述


django文本格式

pypi-badgebuild-status

django textformat使配置和编写文本格式变得容易。 文本格式只是一组应用于 命令。文本过滤器是接受标记字符串并返回 格式化字符串

内置过滤器为:

html_escape
它与Django的escape模板过滤器相同,可以作为文本使用 过滤。
linebreaks_and_paragraphs
它与django的linebreaks模板过滤器相同,可以作为文本使用 过滤。
linebreaks
它与django的linebreaksbr模板过滤器相同,可以作为文本使用 过滤。
striptags
它与django的striptags模板过滤器相同,可以作为文本使用 过滤。
urlize
它与django的urlize模板过滤器相同,可以作为文本使用 过滤。

默认情况下,django textformat不提供任何文本格式,但是 一种想法,文本格式可能由内置过滤器html_escape组成, urlizelinebreaks_and_paragraphs

这将允许您将这些过滤器分组为一种格式并使用它 坚持完成你的项目。

使用量

django textformat的默认用例在模型中可能如下所示:

fromdjango.dbimportmodelsfromdjango_textformatimportTextFormatFieldclassArticle(models.Model):title=models.CharField(max_length=50)content=models.TextField()content_format=TextFormatField()

然后您可以在模板中使用文章的选定格式,如 这个:

{%loadtextformat%}{{article.content|apply_format:article.content_format}}

最初创建文本格式

为了使用像上面的Article这样的模型,您已经需要 django_textformat.models.TextFormat已定义实例。你可以创建 手工或使用数据迁移的格式。我们建议使用数据迁移 这将确保您的项目的所有实例(例如,对于所有dev) 有相同的格式可用。

为此,请在您的某个网站应用程序中创建一个空迁移,如:

python manage.py makemigrations blog --empty

现在让新创建的迁移看起来像这样:

# -*- coding: utf-8 -*-from__future__importunicode_literalsfromdjango.dbimportmigrations,modelsdefadd_format(apps,schema_editor):TextFormat=apps.get_model('django_textformat','TextFormat')markdown_format=TextFormat.objects.create(slug='article',name='Article Format')markdown_format.filters.create(name='html_escape',sort=1)markdown_format.filters.create(name='urlize',sort=2)markdown_format.filters.create(name='linebreaks_and_paragraphs',sort=3)defremove_format(apps,schema_editor):TextFormat=apps.get_model('django_textformat','TextFormat')format=TextFormat.objects.get(slug='article')format.delete()classMigration(migrations.Migration):dependencies=[('django_textformat','0001_initial'),]operations=[migrations.RunPython(add_format,remove_format,),]

添加自定义文本过滤器

添加自定义文本过滤器很容易。为了增加一个,你需要一个 text_fitlers.py文件然后添加一个接受字符串的函数 并返回格式化字符串。

下面是一个示例:

# in your_app/text_filters.pyfromdjango_textformat.registryimportregistryimportmarkdown@registry.registerdefmarkdown(value):returnmarkdown.markdown(value,extensions=['extra'])

现在有一个名为'markdown'的文本过滤器可用于文本 格式

发展

使用以下命令安装依赖项(包括测试依赖项):

pip install -r requirements.txt

然后可以使用以下命令运行所有测试:

tox

更改日志

0.1.0

  • 初次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Thumbnailator库将图像转换为cmyk   Java反射从目录中的类运行测试   JavaEclipseJDT编译器说方法未定义,但EclipseIDE没有   重构如何重构一行重复的java代码   java Eclipse:使用删除线文本呈现自定义注释   java问题与ArrayList复制数据   java如何在swagger中传递访问令牌?   使用另一个java文件运行java文件时出错   java为什么谷歌云存储生成的上传链接在成功上传后不会失效?   java将我的客户端PC重定向到默认登录页面   java hibernate c3p0配置mysql问题   java和java之间的区别。尼奥。文件文件和java。伊奥。文件   列出java循环并向映射中添加值   java为什么OJ报告这段代码的运行时错误?