Django-Oscar小记:如何使用高版本Django开发网…
2019-01-15 07:01:23来源:博客园 阅读 ()
在使用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.cnblogs.com/jwh-452951171/p/10268633.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如果是自学WEB前端的话,该如何才能找到一份7K实习生工作呢 2020-06-04
- 前端如何学习? 2020-06-04
- 如何成为一名优秀的web前端工程师 2020-06-02
- 零基础小白转行如何入门学习web前端 2020-06-01
- 如何在博客园添加自己的头像 2020-05-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash