一个小应用程序,跟踪数据库表中的url更改,根据请求提供http 301&410。

django-url-tracker的Python项目详细描述


https://travis-ci.org/elbaschid/django-url-tracker.png

django-url-tracker是一个易于使用的 一个加强其搜索引擎优化的网站。这似乎有点毫无意义 作为Cool URIs don’t change。我不想争论 有了它而不更改url应该是主要目标。万一, 由于某种原因更改了url,但是这可能会在 搜索引擎优化作为搜索引擎不喜欢结束在404 爬网已知URL时的页面。很好地处理这些情况 django-url-tracker跟踪url的更改以及old url被称为提供永久重定向(http 301)或gone 已删除URL的响应(HTTP 410)。

跟踪是针对那些基于 模型字段,例如aslug字段。开始跟踪URL更改 对于特定的模型,您只需注册该模型 使用url_tracker,每次更改或删除模型时, 记录URL更改。

提供^{tt4}的http repsons$ 或者HttpResponseGone的处理方式类似于flatpages 中间件,拦截404异常并检查 所有现有的{TT8} $中的请求URL。依靠 在记录的数据上,相应的http响应是return或 当没有与请求的url匹配的url时,将引发404。 找到了。

安装

安装非常简单:

pip install django-url-tracker

完成!

配置

开始在项目中使用url_tracker。只需添加 以下两行指向您的settings.py

  1. 添加中间件url_tracker.middleware.URLChangePermanentRedirectMiddlewareMIDDLEWARE_CLASSES的结尾,应该看起来类似 以后再说:

    MIDDLEWARE_CLASSES = (
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
        'url_tracker.middleware.URLChangePermanentRedirectMiddleware',
    )
    
  2. url_tracker添加到INSTALLED_APPS

    INSTALLED_APPS = (
         "url_tracker",
    )
    

现在您可以在项目中使用url_tracker。所有这些 剩下要做的就是注册一个模型进行跟踪。

跟踪模型

这只是一个如何跟踪模型的简单示例。假设我们 有一个模型Project,它保存这个特定项目的详细信息,并且 在url http://www.example.com/project/some-project/处可用。 项目的url基于模型的SlugField。模型可以 如下所示:

class Project(models.Model):
    name = models.CharField(max_length=20)
    slug = models.SlugField(max_length=20)
    description = models.CharField(max_length=500)

我不想详细讨论如何制造出这种子弹,因为我认为这是 常见做法。所以现在我们假设slug已填充 自动从name开始。然而,还有一件事是 要工作的跟踪器,get_absolute_url方法。把这个加到 型号:

class Project(models.Model):
    ...

    @models.permalink
    def get_absolute_url(self):
        return ('project-detail', (), {'slug': self.slug})

现在,缺少的真正开始跟踪url更改的链接正在添加 类定义或文件底部的以下命令 就此而言:

import url_tracker
url_tracker.track_url_changes_for_model(Project)

你完了。如果转到管理界面,请创建一个新项目 然后改变它的slug(改变它的url)你会看到一个新的 URLChangeRecord反映了更改。打开old_url应该 然后重定向到new_url

贡献

如果您发现问题或希望看到支持的功能,请转到 然后报告。

要以任何形式贡献代码,请分叉github repository:并在本地克隆它。 为您的功能创建新分支:

git commit -b feature/whatever-you-like

将完成的功能推送到github,并从分支中打开一个pull请求。

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

推荐PyPI第三方库


热门话题
java模拟存储库对象从controller testcase返回空结果?   Java扫描程序跳行异常   c#混淆If语句?   java为什么日志中的stacktrace前面没有这一行?   java如何使SSHJ在非标准端口上启动出站SFTP?   java我如何确定为什么每周收入没有在我的程序中显示前三次?   java如何判断堆叠条形图的轴的行为?   java rest json API的Web服务器体系结构   java ClassCastException:javax。摆动按扭   Java在Linux上不读取excel文件(使用Apache POI)   反馈错误后,java Wicket 1.4.9无法从modal使用AjaxRequestTarget!   java方法头中“静态”的含义是什么?   java无法在我的tomcat应用程序中添加外部库   java使用Itext Pdf将图像添加到Pdf文件   java为什么当我调用universe时java3d会闪烁。getCanvas()。getView()。重新油漆();   java Gson嵌套类在使用proguard时为空   java如何确定JSON路径对文档是否有效   java在使用Jsoup解析时保持HTML布尔属性的原始形式   使用Java SDK,如何在Azure存储文件服务中为文件设置元数据?