为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更改计算器不显示更改   java计算沿相对对角线的点偏移   当我用javac编写几个。java文件,我有一些“重复类”错误,但我在代码中找不到错误   java Trim ArrayList根据位置设置一个数字   java使用Optional映射和返回未使用的数据   java在28字节分配的Android上内存不足   java如何在一个组件中创建实例,而在另一个组件中使用实例?   java Apache Maven:找不到符号,目标发布错误无效(NetBeans支持Mule插件)   java任何序列化“javax”的方法。艾尔。LambdaExpression`?   java使用一个单词将一个单词分成两行   java为什么ClassCastException只在运行时发生?   java如何在JavaFX中重新启动计时器?   java如何从cucumber数据表更新Json有效负载中的多个字段   http Java请求仅在以下情况下工作   java如何使用Struts 2.0更改web应用程序的会话超时?   不按java网格宽度动态设置   java ask错误加载抽绳   java Jersey 2状态代码在HttpServletResponseWrapper中不可见