提供工具的完整清单,以便在Django中编写正确的内容
项目描述
Check list SEO 
功能
- 关键词分配
- 内容长度
- 检查文章标题长度
- URL已优化
- 内部链接数量
安装
Pypi
pip install checklist-seo
在Django中安装应用程序
要使用此应用程序,您首先需要将其添加到您的配置文件中。
在您的配置文件中(例如:settings.py)
# Application definition
INSTALLED_APPS = [ ... 'seo' ... ]
SEO面板
要设置SEO关键词,您需要在wagtail管理中添加一个特殊的SEO面板,该面板将在您创建页面时出现。
该模块在models/SeoPage中包含一个模型,该模型需要用作您的页面模型的基础。
您的模型示例
class HomePage(SeoPage): date = models.DateField("Post date") intro = models.CharField(max_length=250) delay = models.IntegerField(default=0, validators=[MaxValueValidator(99), MinValueValidator(0)]) body = StreamField([ ('text', RichTextBlock(blank=True, features=['h2', 'h3', 'h4', 'bold', 'italic', 'link', 'code', 'ol', 'ul', 'hr', 'document-link', 'image', 'embed', 'superscript', 'subscript', 'strikethrough', 'blockquote'])), ('rawHtml', RawHTMLBlock(blank=True)), ], blank=True) images_keyword = models.CharField(max_length=250, blank=True) selected_image = models.ForeignKey( 'wagtailimages.Image', null=True, blank=True, on_delete=models.SET_NULL, related_name='+' )<span class="n">keep_slug</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span> <span class="n">verbose_name</span><span class="o">=</span><span class="p">(</span><span class="s1">'Keep current slug'</span><span class="p">),</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help_text</span><span class="o">=</span><span class="p">(</span><span class="s2">"Keep current slug or save to generate a new slug."</span><span class="p">)</span> <span class="p">)</span> <span class="k">def</span> <span class="nf">_get_autogenerated_slug</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">base_slug</span><span class="p">):</span> <span class="sd">"""Redefinition of wagtail's _get_autogenerated_slug so you can use your own slug generator."""</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">slug</span> <span class="n">search_fields</span> <span class="o">=</span> <span class="n">Page</span><span class="o">.</span><span class="n">search_fields</span> <span class="o">+</span> <span class="p">[</span> <span class="n">index</span><span class="o">.</span><span class="n">SearchField</span><span class="p">(</span><span class="s1">'intro'</span><span class="p">),</span> <span class="p">]</span> <span class="n">content_panels</span> <span class="o">=</span> <span class="n">Page</span><span class="o">.</span><span class="n">content_panels</span> <span class="o">+</span> <span class="p">[</span> <span class="n">MultiFieldPanel</span><span class="p">([</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'date'</span><span class="p">),</span> <span class="n">FieldRowPanel</span><span class="p">([</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'delay'</span><span class="p">),</span> <span class="p">]),</span> <span class="p">],</span> <span class="n">heading</span><span class="o">=</span><span class="s2">"Blog information"</span><span class="p">),</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'intro'</span><span class="p">),</span> <span class="n">StreamFieldPanel</span><span class="p">(</span><span class="s1">'body'</span><span class="p">),</span> <span class="n">FieldRowPanel</span><span class="p">([</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'images_keyword'</span><span class="p">),</span> <span class="p">],</span> <span class="n">heading</span><span class="o">=</span><span class="s2">"Images"</span><span class="p">),</span> <span class="n">ImageChooserPanel</span><span class="p">(</span><span class="n">field_name</span><span class="o">=</span><span class="s2">"selected_image"</span><span class="p">,</span> <span class="n">heading</span><span class="o">=</span><span class="s2">"Image sélectionnée"</span><span class="p">),</span> <span class="p">]</span> <span class="n">promote_panels</span> <span class="o">=</span> <span class="p">[</span> <span class="n">MultiFieldPanel</span><span class="p">([</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'slug'</span><span class="p">),</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'keep_slug'</span><span class="p">),</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'seo_title'</span><span class="p">),</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'show_in_menus'</span><span class="p">),</span> <span class="n">FieldPanel</span><span class="p">(</span><span class="s1">'search_description'</span><span class="p">),</span> <span class="p">],</span> <span class="n">heading</span><span class="o">=</span><span class="s2">"Common Page Configuration"</span><span class="p">),</span> <span class="p">]</span> <span class="n">edit_handler</span> <span class="o">=</span> <span class="n">TabbedInterface</span><span class="p">([</span> <span class="n">ObjectList</span><span class="p">(</span><span class="n">content_panels</span><span class="p">,</span> <span class="n">heading</span><span class="o">=</span><span class="s1">'Content'</span><span class="p">),</span> <span class="n">ObjectList</span><span class="p">(</span><span class="n">promote_panels</span><span class="p">,</span> <span class="n">heading</span><span class="o">=</span><span class="s2">"Promote"</span><span class="p">),</span> <span class="n">SeoPage</span><span class="o">.</span><span class="n">seo_object_list</span><span class="p">,</span> <span class="n">ObjectList</span><span class="p">(</span><span class="n">Page</span><span class="o">.</span><span class="n">settings_panels</span><span class="p">,</span> <span class="n">heading</span><span class="o">=</span><span class="s1">'Settings'</span><span class="p">)</span> <span class="p">])</span>
路由
在您的路由项目文件 urls.py
from django.conf.urls import url from django.urls import includeurlpatterns = [ ... url(r'^seo/', include('seo.urls'), name='seo'), ]
静态
要从此应用获取CSS / JS / 图片文件到您的项目 python manage.py collectstatic
数据库迁移
现在您可以检测更改 python manage.py makemigrations
并在数据库中应用它 python manage.py migration
测试
pytest
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。
源代码分发
本版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。
构建分发
checklist_seo-0.0.7-py3-none-any.whl (35.5 kB 查看散列值)