资讯专栏INFORMATION COLUMN

Django-Oscar小记:如何使用高版本Django开发网页的SEO模块

番茄西红柿 / 3031人阅读

摘要:在使用搜索的插件时,很多插件都没有更新到,有的插件更新到了的高版本,但是不适用于的。在升级到版本的时候删除了很多类。正确指令不是,是完毕后,数据库生成表。我们最终使用到的表就是。有了自己的基类之后,在中配置的父类。

在使用Google搜索Django的SEO插件时,很多插件都没有更新到Python3.x,有的插件更新到了Python的高版本,但是不适用于Django的2.x。

Django在升级到版本2.x的时候删除了很多类。

所以,在选择插件时,建议使用 django-snakeoil

1.安装:

最快捷的方法:pip install django-snakeoil

其他方法自行google,对于一个网站都开始设置SEO的时候,pip这个东西应该不会出现没有安装的问题了。

插件文档链接:https://django-snakeoil.readthedocs.io/en/latest/

2.配置

在setting.py文件中配置(注:此插件一定要放在最后)

INSTALLED_APPS = [
    ....,
    snakeoil,
]

 

运行makemigrations和migrate

正常运行上述两个命令并不会成功生成table表。正确指令:

python manage.py makemigrations seo

python manage.py migrate seo

不是snakeoil,是seo

完毕后,数据库生成seo_seourl表。可以在django后台,根据url配置页面简单title,description

3.html

页面文件开头,添加代码:

{% load snakeoil %}
{% get_seo_data %}
<title>{{ seo.head_title }}title>
<meta name="description" content="{{ seo.meta_description }}">

4.扩展

接下来,我们丰富此插件,添加keywords。

首先,新建一个自己的model,可以继承它原有的基类:

snakeoil.models.SeoModel

也可以重写一个自己的model。简单代码如下:

class MySeo(models.Model):
   head_title = models.CharField(blank=True, max_length=80, verbose_name=head title)
   meta_description = models.TextField(blank=True, verbose_name=meta description)
   keywords = models.TextField(blank=True, verbose_name=key words)

   
   class Meta:
      abstract = True

设定abstract=True,因为此table不需要被加载。我们最终使用到的表就是seo_seourl。

有了自己的seo基类之后,在settings.py中配置seo_seourl的父类。

SNAKEOIL_MODEL = MyApp.models.MySeo

 

重新运行makemigrations和migrate,seo_seourl会被重新生成。之后,我们在前端添加keywords的读取:

<meta name="keywords" content="{{ seo.keywords }}"/>

5.自定义Tags

接下来进行进一步扩展。在templatetags文件夹下,添加my_tags.py文件,复制snakeiol包下面的templatetags/snakeoil.py全部代码。

然后再settings.py文件中配置引用my_tags.py

TEMPLATES = [
    {
        BACKEND: django.template.backends.django.DjangoTemplates,
        DIRS: [...],
        APP_DIRS: True,
        OPTIONS: {
            context_processors: [...],
            libraries: {
                hexseo_tags: templatetags.hexseo_tags,
            }
        },
    },
]

 

之后我们就可以在前端调用。

{% load hexseo_tags %}
{% get_seo_data %}
<title>{{ seo.head_title }}title>
<meta name="description" content="{{seo.meta_description}}"/>
<meta name="keywords" content="{{ seo.keywords }}"/>

刷新页面,查看是否成功,然后再render代码中写自己需要的逻辑代码去获取seo_seourl中的数据

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/1328.html

相关文章

  • FEDay 参会小记

    摘要:介绍微信风格的,与客户端体验一致,这个自己去微信上看吧,略。微信调试一件套,网页授权模拟集成代理远程调试。这些在微信开发者中心有介绍,略。年微信开发经验的人,终于又成为了零年开发经验的人,重新走上了踩坑之路。 showImg(https://segmentfault.com/img/bVtEd1);活动地址:http://fequan.com/2016/ 注意:英文不好,小记也带有自己...

    xcc3641 评论0 收藏0
  • 前端渲染与SEO优化踩坑小记

    摘要:前言在网站页面后端渲染的时代,开发者只需要按照规范制作搜索引擎友好的页面便可以快速让搜索引擎收录自己网站的各个页面。 前言 在网站页面后端渲染的时代,开发者只需要按照规范制作搜索引擎友好的页面便可以快速让搜索引擎收录自己网站的各个页面。 随着前后端技术的更新,越来越多的前端框架进入开发者们的视野,网站的前后分离架构越来越得到开发者们的喜爱与认可。 后端只提供数据接口、业务逻辑与持久化服...

    wums 评论0 收藏0
  • 前端渲染与SEO优化踩坑小记

    摘要:前言在网站页面后端渲染的时代,开发者只需要按照规范制作搜索引擎友好的页面便可以快速让搜索引擎收录自己网站的各个页面。 前言 在网站页面后端渲染的时代,开发者只需要按照规范制作搜索引擎友好的页面便可以快速让搜索引擎收录自己网站的各个页面。 随着前后端技术的更新,越来越多的前端框架进入开发者们的视野,网站的前后分离架构越来越得到开发者们的喜爱与认可。 后端只提供数据接口、业务逻辑与持久化服...

    Benedict Evans 评论0 收藏0
  • 动态网站SEO解决方案经验汇总

    摘要:动态网站解决方案汇总先撸撸几个概念单页面应用,基于框架开发的项目很多都属于单页面应用。搜索引擎优化,指通过对网站进行站内优化修复和站外优化,从而提高网站的网站关键词排名以及公司产品的曝光度。为了防止进程挂掉,可以使用来启动,。 动态网站 SEO解决方案汇总 先撸撸几个概念: SPA:单页面应用,基于vue框架开发的项目很多都属于单页面应用。 SSR :server side rend...

    UsherChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<