15 定义视图函数
在Django中,视图函数是将请求与响应连接起来的关键部分。它们负责处理用户请求并返回相应的内容。在这一小节中,我们将通过具体案例来详细了解如何定义视图函数。
创建基本视图函数
一个视图函数是一个普通的Python函数,接收一个HttpRequest
对象并返回一个HttpResponse
对象。下面是一个简单的示例:
1 | from django.http import HttpResponse |
在这个例子中,hello_world
函数处理请求并返回一段简单的文本。
将视图函数映射到URL
为了使我们的视图函数能够响应特定的URL请求,我们需要在urls.py
文件中进行配置。下面是如何将视图函数映射到URL的步骤:
- 打开你的 Django 应用的
urls.py
文件。 - 导入视图函数。
- 添加 URL 模式。
以下是完整的示例:
1 | from django.urls import path |
现在,当用户访问 /hello/
URL 时,hello_world
视图函数将被调用,并返回 “Hello, world!”。
视图函数接收参数
视图函数不仅可以处理基本请求,还可以接收 URL 参数。下面是一个接受用户名称的视图函数的示例:
1 | def greet_user(request, username): |
在 urls.py
中,我们将相应的 URL 配置为:
1 | urlpatterns = [ |
现在,如果一个用户访问 /greet/John/
,服务器将返回 “Hello, John!”。
使用模板渲染视图
视图函数还可以使用 Django 的模板系统返回更复杂的 HTML 响应。以下是如何做到这一点的示例:
- 首先,确保你有一个 HTML 模板文件,例如
greet.html
,其内容如下:
1 |
|
- 然后,在你的视图函数中使用
render
方法来渲染这个模板:
1 | from django.shortcuts import render |
- 更新
urls.py
文件:
1 | urlpatterns = [ |
现在,当用户访问 /greet/John/
时,系统将返回一个包含“Hello, John!”消息的 HTML 页面。
处理表单提交
视图函数还可以处理用户提交的表单。以下是一个基本的示例:
- 创建一个简单的 HTML 表单,例如
name_form.html
:
1 | <form method="post"> |
- 创建视图函数来处理表单提交:
1 | from django.shortcuts import render |
- 在
urls.py
中更新配置:
1 | urlpatterns = [ |
现在,用户可以通过访问 /name/
提交他们的姓名,系统将返回包含姓名的问候信息。
总结
在本小节中,我们学习了如何在 Django 中定义视图函数,以及如何将其映射到 URL。我们还探讨了如何接收 URL 参数、使用模板渲染响应和处理表单提交。掌握视图函数的定义与使用是构建 Django 应用的基础。
15 定义视图函数