Django 3.0.2 模板中超链接配置完整示例

桃夭
桃夭
发布时间:2026-10-13| 6人浏览过
原创

本文详细解析在 Django 3.0.2 环境下配置模板中超链接的完整流程。涵盖从 urls.py 的路由分发、blog 子应用的 URL 定义,到 view.py 中视图函数的数据传递,以及 index 和 article_page 模板中链接标签的具体写法。通过代码实例展示如何正确绑定文章 ID 并实现页面跳转,帮助开发者快速掌握 Django 模板链接配置技巧。

主路由配置:myblog/urls.py

首先,需要在 myblog 项目的 urls.py 文件中配置主路由。通过导入 django.urls 模块中的 include 函数,将 blog 应用的 URL 配置包含进来,实现请求的分发。

主路由代码示例


from django.urls import include
from django.conf.urls import url
urlpatterns = [
  path('blog/',include('blog.urls')),
]

子应用路由:blog/urls.py

接着,在 blog 应用的 urls.py 中定义具体的 URL 规则。这里需要导入 path 函数,并引入对应的 views 模块。配置两条路径:一条指向 index 视图,另一条通过正则捕获文章 ID(int:article_id)并映射到 article_page 视图,同时为该路径命名以便模板引用。

子应用路由代码示例


from django.urls import path
from django.conf.urls import url
from . import views 
urlpatterns = [
  path('index',views.index),
  path('article/<int:article_id>',views.article_page,name='article_page')
]

视图函数实现:blog/views.py

然后在 blog 应用的 view.py 中实现视图逻辑。导入 render、HttpResponse 及 models 模块。定义 index 函数,查询所有文章对象并传递给 blog/index.html 模板;定义 article_page 函数,根据传入的 article_id 获取特定文章对象,并将其传递给 blog/article_page.html 模板。注意 render 函数的第三个参数用于向前端传递字典类型的数据。

视图函数代码示例


from django.shortcuts import render
from django.http import HttpResponse
from . import models
# Create your views here.
def index(request):
  articles = models.Article.objects.all()
  return render(request, 'blog/index.html', {'articles': articles})


def article_page(request,article_id):
  article = models.Article.objects.get(pk=article_id)
  return render(request,'blog/article_page.html',{'article':article})

#redner的第三个参数是用来传递数据到前端的,函数中支持一个disc参数(字典类型的数据)

列表模板:index.html

在 blog/templates/blog/index.html 模板中编写文章列表的 HTML 结构。遍历 articles 集合,为每篇文章生成一个超链接。链接地址拼接为 /blog/article/ 加上文章 ID,并设置 rel 属性为 external nofollow。链接文本显示文章标题。

列表模板代码示例


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
</head>
<body>
<h1><a href="">新文章</a></h1>
{% for article in articles %}
 <a href="/blog/article/{{article.id}}" rel="external nofollow" >{{article.title}}</a>
 <br/>
{% endfor %}
</body>
</html>

详情模板:article_page.html

在 blog/templates/blog/article_page.html 模板中展示单篇文章详情。页面标题和正文内容分别通过 {{article.title}} 和 {{article.content}} 变量渲染。底部提供一个“修改文章”的超链接,具体跳转地址可根据实际需求配置。

详情模板代码示例


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>article page</title>
</head>
<body>
<h1>{{article.title}}</h1>
<br/>
<h3>{{article.content}}</h3>
<br/><br/>
<a href="">修改文章</a>
</body>
</html>

测试与反馈

以上代码示例可在本地 Django 环境中测试验证。如果在配置过程中遇到任何问题或有补充建议,欢迎联系本站编辑进行交流反馈。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。