小编前面做了个小调查,发现本公众号超过半数的读者可能还是学生,接触和使用Django还不满6个月,小编决定提笔另启动Django新手入门系列,与现有的Django基础系列并行(实际上现在Django基础系列更新到现在很多新手读起来已经感到有些难度了)。对于中级读者与技术大咖们,小编正在筹备Django源码阅读系列和DRF系列,会提供更深些的内容。本文是Django新手入门小知识系列的第一篇,介绍如何在模板中避免使用硬编码的url以及最佳处理方式。如果你是刚入门Django不久,觉得本文非常有帮助的话,请留个言哈!
什么是硬编码(Hard-coded)URL
假如我们有个应用名叫blog,它有一个文章Article模型( 包含title和slug两个字段)。我们还编写了两个视图函数index和detail,一个用于显示文章列表,一个用于显示文章详情(如下所示)。我们的目的是实现当用户访问articles/2/时,用户就可以看到第2篇文章的详情。
#blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('articles/<int:article_id>/',