Django 是一个功能强大的开源 Python Web 框架,它简化了创建和管理网站及 Web 应用程序的过程。Django 应用程序具有可扩展性、高性能和安全性。它还为框架的每个部分提供了非常优秀的文档。
在我们的 Django 系列教程 中,我们通过实现一个具有基本博客功能的示例网站来探索 Django。在本指南中,我们将逐步介绍为 Django 应用程序创建示例视图的步骤。
前提条件
要学习本指南,您需要以下组件。
- 一台 Ubuntu 服务器,并进行适当的配置。了解更多关于 设置 Ubuntu 服务器.
- 配置妥当的 Python 开发环境.
- 一个数据库服务器,例如 MySQL。本指南详细介绍了 在 Ubuntu 服务器上安装和配置 MySQL.
本指南是我们 Django 系列教程的延续。首先,查看之前关于 设置 Django, 建立 Django 数据库连接, 创建模型 以及 启用 Django 管理界面.
在本指南中,我们将展示如何创建 Django 视图,使 Web 应用程序能够正确处理 Web 请求并返回适当的响应。正如 Django 官方文档 所描述的,Web 响应可以是网页的 HTML 内容、重定向或 HTTP 错误。只要视图函数在 Python 路径内,就没有固定的存放位置。然而,对于文件的命名 and 放置,有一些流行的约定。本指南将遵循这些约定。
步骤 1. 激活虚拟环境
Django 最好在 Python 虚拟环境中运行。我们的 Django 应用程序 sample_app 是在一个专用的虚拟环境中建立的。首先,激活该虚拟环境:
|
1 2 3 |
cd sample_app/ . sample_app_env/bin/activate |
步骤 2. 创建视图函数
导航到我们的 random_app 目录,该目录托管了我们博客网站的模型:
|
1 |
cd random_app/ |
在这里,文件 views.py 将包含创建视图所需的代码。在文本编辑器中打开它:
|
1 |
nano views.py |

我们需要 render() 函数,它来自 django.shortcuts 库,因此第一行保持不变。 render() 函数 有助于将模板和上下文结合起来,作为适当的 HttpResponse 对象返回。
第一个视图将欢迎访问主页的用户。我们必须从 Django 库 函数 HttpResponse(),它来自 Django 库 http:
|
1 2 3 4 5 6 7 8 |
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse(您已访问欢迎的页面') def individual_post(request): return HttpResponse('单篇文章将在此显示') |

保存文件并关闭编辑器。
步骤 3. 将 URL 映射到视图
目前,没有为这些函数指定 URL,因此无法访问它们。我们需要在 URL 配置文件中添加另一个块 urlpatterns。在 Python 中,它被称为 URLconf (URL 配置)文件。
Django 需要确定要使用的根 URLconf 模块。然后,它将查找 urlpatterns,其中以列表结构包含所有 URL 模式。然后,Django 会遍历该文件,直到找到第一个匹配项。一旦找到匹配项,Django 就会寻找其关联的视图。该视图函数将接收与 URL 模式相关的数据以及一个 HttpRequest 对象。此过程中的任何一点出错都将其重定向到 错误处理视图.
在文本编辑器中打开 urls.py(位于 random_app 中):
|
1 |
nano urls.py |
输入以下代码:
|
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('post/', views.individual_post, name='individual_post') ] |

保存文件并关闭编辑器。
完成后,我们还需要将 URL 文件的路径包含在 sample_app 目录的 URLconf 下。否则,我们的 Django 应用将无法识别它。这是因为 URLconf 的 sample_app 被设置为设置文件中的 ROOT_URLCONF。
导航到我们应用的目录 sample_app:
|
1 |
cd sample_app/sample_app/sample_app/ |
![]()
在文本编辑器中打开 urls.py 文件:
|
1 |
nano urls.py |

在文件中输入以下代码:
|
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('random_app.urls')) ] |

让我们测试一下我们的更改。在 上启动 Django 应用服务器:localhost:8000:
|
1 |
python manage.py runserver localhost:8000 |

导航到该 URL:
|
1 |
localhost:8000 |

检查文章的 URL:
|
1 |
localhost:8000/posts |
步骤 4. 创建博客文章
我们已经建立了 URL 模式并研究了它们的工作流程。是时候添加一个示例博客并查看结果了。
从管理面板导航到 random_app 页面:
|
1 |
localhost:8000/admin/random_app/ |

点击 +Add 链接,位于 Posts 行:

在新网页上,它将呈现一个由以下字段组成的表单。
- Title(标题): 博客文章的标题。
- Slug(别名): 它指的是包含人类可读关键字的有效网址部分。通常,别名是根据文章标题创建的。
- Content(内容): 博客文章的正文。
- Author(作者): 相关的用户名。
点击 SAVE 提交文章:

步骤 5. 显示数据库中的数据
在接下来的部分中,我们将使用我们的数据库。以 Django 专用用户身份登录 MySQL:
|
1 |
mysql -u sample_app_user -p |

让我们验证我们的文章是否已成功注册到数据库中:
|
1 |
USE sample_app_data; |

|
1 |
SELECT * FROM random_app_post; |

瞧!文章已成功注册!您现在可以退出 MySQL shell 了。
步骤 6. 额外的视图微调
我们还可以对视图进行一些其他操作。在文本编辑器中打开文件:
|
1 |
nano views.py |
代码应该像这样:
|
1 2 3 4 5 6 7 8 9 10 |
from django.shortcuts import render from django.http import HttpResponse from .models import Post def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): recent_post = Post.objects.get(id__exact=1) return HttpResponse(recent_post.title + ': ' + recent_post.content) |

在这里,我们添加了一个额外的 import 语句,用于 Post。... 来自 HttpResponse 的引用字符串也被我们博客文章中的数据所替换。为了引用该数据,我们使用博客文章 ID 及其关联的对象。该 ID 被存储在变量 recent_post 中。现在,我们可以通过在字段后附加句点分隔符来提取对象的特定字段。
更改完成后,让我们验证这些更改。启动 Django 服务器:
|
1 |
python manage.py runserver localhost:8000 |

现在,访问 Posts 页面:
|
1 |
localhost:8000/posts |

它应该显示我们创建的博客文章。
步骤 7. 退出项目
要退出 Django 服务器,请按 Ctrl + C(在终端中)。要停用 Python 虚拟环境,请运行以下命令:
|
1 |
deactivate |
总结
在本指南中,我们成功演示了如何创建视图、映射 URL 模式,以及在网页上显示来自 random_app 中的 Django.这些是 Django 的基本概念,必须理解并掌握。
以下是帮助您创建和管理 Django 应用的更多资源:
- 创建具有数据库连接的 Django 应用:教程
- 在 Ubuntu 上使用 Docker 构建 Django 和 Gunicorn 应用
- 如何使用 Docker、Nginx 和 Let’s Encrypt 安全保护和扩展 Django 应用
祝您编程愉快!

评论
暂无评论。发表第一条评论吧。