在django中处理遗留URL的最佳方法
发布时间:2020-12-20 13:42:20 所属栏目:Python 来源:网络整理
导读:我正在制作一个重要的新闻发布平台.基本上用 django从零开始重建所有东西.现在我们已经准备好启动了,我需要处理遗留的URL重定向.考虑到我必须处理成千上万的遗留网址,最好的方法是什么? 逻辑应该像这样工作:如果匹配的现有url / views都没有运行该url彻底
我正在制作一个重要的新闻发布平台.基本上用
django从零开始重建所有东西.现在我们已经准备好启动了,我需要处理遗留的URL重定向.考虑到我必须处理成千上万的遗留网址,最好的方法是什么?
逻辑应该像这样工作:如果匹配的现有url / views都没有运行该url彻底传递Redirect urls模式/视图,以查看它是否可以在返回404错误之前提供一些重定向到新url. 我怎么做? 解决方法
真棒,通过使用自定义中间件实现:
from django.http import Http404 from legacy.urls import urlpatterns class LegacyURLsMiddleware(object): def process_response(self,request,response): if response.status_code != 404: return response for resolver in urlpatterns: try: match = resolver.resolve(request.path[1:]) if match: return match.func(request,*match.args,**match.kwargs) except Http404: pass return response 只需将此中间件添加为MIDDLEWARE_CLASSES列表中的最后一个中间件即可.然后在遗留应用程序中使用urls.py文件来声明将处理永久重定向的旧URL和视图.请勿将旧网址包含在主网址结构中.这个中间件为你做,但有点不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读