这里是你的项目描述

meta-tagger的Python项目详细描述


这个包处理Django CMS项目的元标记。一些全球性的东西,比如页面作者和发布者可以 作为设置变量进行管理。其他内容存储在页面扩展中。如果你有自己的Django模特 甚至可以使用一个密钥库来获得元标记所需的所有内容。

要求

  • Django>;=1.5
  • django-cms>;=3.0

快速启动

安装meta标记:

pip install meta-tagger

加载此包的所有模板标记

{% load meta_tagger_tags %}

settings.py

中配置已安装的应用程序
INSTALLED_APPS = (
    ...,
    'meta_tagger',
)

呈现标题标记的内容

<title>{% render_title_tag %}</title>

包括所有其他元标记:

{% include 'meta_tagger/meta_tags.html' %}

迁移数据库

$ ./manage.py migrate meta_tagger

将站点地图添加到您的项目url.py中

from meta_tagger.cms_sitemap import MetaTagRobotsSiteMap

urlpatterns = [
    ...,
    url(r'^sitemap\.xml/$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': {'cmspages': MetaTagRobotsSiteMap}})
]

功能

  • 用于robotsmeta标记和open graph图像的django cms页面扩展。
  • 用于应用程序模型的MIXIN继承页面特定字段(如元标题、机器人等)
  • 包含呈现所有元标记的模板。
H2>模型MIXIN < /H2>

这个包为你自己的Django应用程序提供了几种混合模式。使用 MetaTagTitleDescriptionMixinOpenGraphMixinRobotsMixin很简单,就像 任何其他混合蛋白。如果视图有一个名为object的上下文变量,这是基于类的 泛型DetailView,您不需要考虑任何事情。否则,只需将对象作为上下文传递给视图。

确保在创建迁移之前不要忘记实现转换设置。

您可能希望使用自己的模型字段之一作为元标题。通过重写相应的方法 (例如get_meta_title),很容易提供另一个值。

静态设置

要用值填充全局元标记,只需将以下行添加到settings.py

META_TAGGER_META_TAG_CONF = {
    'META_AUTHOR': 'My author',
    'META_PUBLISHER': 'My publisher',
    'META_COPYRIGHT': '2016',
    'META_COMPANY': 'My company',
    'META_SITE_NAME': 'My site name',
    'META_TYPE': 'website',
}

META_TAGGER_ROBOTS_DOMAIN_WHITELIST = ['www.example.com']

动态设置

如果您正在寻找管理管理文件(而不是设置文件)中的全局元标记的解决方案,则可以 看看constance包。安装非常简单:

pip install "django-constance[database]"
pip install django-picklefield

settings.py

中配置已安装的应用程序
INSTALLED_APPS = (
    ...,
    'constance',
    'constance.backends.database',
)

CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
CONSTANCE_DATABASE_CACHE_BACKEND = 'default'
CONSTANCE_ADDITIONAL_FIELDS = {
    'short_text': ['django.forms.fields.CharField', {'widget': 'django.forms.fields.TextInput'}],
}
CONSTANCE_CONFIG = {
    'META_AUTHOR': ('', '<meta name="author" content="{META_AUTHOR}">', 'short_text'),
    'META_PUBLISHER': ('', '<meta name="publisher" content="{META_PUBLISHER}">', 'short_text'),
    'META_COPYRIGHT': ('', '<meta name="copyright" content="{META_COPYRIGHT}">', 'short_text'),
    'META_COMPANY': ('', '<meta name="company" content="{META_COMPANY}">', 'short_text'),
    'META_SITE_NAME': ('', '<meta name="site-name" content="{META_SITE_NAME}">', 'short_text'),
    'META_TYPE': ('website', '<meta property="og:type" content="{META_TYPE}">', 'short_text'),
    'META_OG_IMAGE_WIDTH': (1200, '<meta property="og:image:width" content="{META_OG_IMAGE_WIDTH}">', int),
    'META_OG_IMAGE_HEIGHT': (630, '<meta property="og:image:height" content="{META_OG_IMAGE_HEIGHT}">', int),
}

META_TAGGER_ROBOTS_DOMAIN_WHITELIST = ['www.example.com']

请参阅django constance的文档,以获得附加的安装支持(例如redis)

机器人索引

为了防止索引任何不需要的域,机器人元标签的内容默认为^ {TT13}$。全部 设置变量中列出的域使用模型实例或CMS页面的配置:

META_TAGGER_ROBOTS_DOMAIN_WHITELIST = ['www.example.com']

运行测试

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements-test.txt
(myenv) $ python runtests.py

学分

用于呈现此包的工具:

历史记录

0.1.10(2019-07-02)

  • 添加对django 2.1的支持

0.1.9(2019-06-20)

  • 添加对Django CMS 3.6的支持

0.1.7(2018-11-08)

  • 为robots.txt添加视图
  • 引入不允许字段
  • 添加一些德语翻译

0.1.6(2017-07-11)

  • 添加默认索引< /LI>

0.1.5(2016-11-25)

  • 修复没有CMS的设置。

0.1.5(2016-11-25)

  • 修复没有CMS的设置。

0.1.4(2016-10-06)

  • 包装块标记以允许模板覆盖

0.1.3(2016-08-25)

  • 小错误修复

0.1.2(2016-06-22)

  • 小错误修复

0.1.1(2016-05-30)

  • 允许属性重写。
  • 为打开的图形图像添加宽度和高度属性。
  • 防止索引不需要的域。
0.1.0(2016-05-24)
  • 第一个版本是pypi。

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

推荐PyPI第三方库


热门话题
java ProcessBuilder在使用多个参数时运行不正常   java如何使用Spring数据ORM/JPA创建EntityManagerFactory?   将Velocity宏转换为Java指令   internet上的Java TCP/IP服务器客户端通信   java为什么JDK 8允许一个局部内部类(在方法内部)访问封闭方法的非最终局部变量?   基于Java的比率算法   java应用程序在选择列表首选项时出错   java保存对象以供以后使用   java如何使用MySQL JDBC驱动程序连接Android和MySQL   java Zipkin可以用于控制台应用程序   java单击刷新Servlet页面显示重复内容   java如何递归地反转字符串数组?   java如何使用inputStream作为outputStream的文本?   java扩展令牌选择操作符   java在映射中使用通用枚举类   arraylist如何使用JAVA流从对象列表中查找平均值   windows将FileInputStream和FileOutputStream传递给ffmpeg进行转码(使用JAVEJava音频视频编码)   java Ant脚本在执行CVS签出后找不到目标   重复值情况下的java插入排序,双链表ADT   java如何在Accumulo中获取数据库查询计数