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

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

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

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

1.安装:

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

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

插件文档链接:

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的读取:

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信