【Django】视图函数

【Django】视图函数

视图函数的本质是Python中的函数,视图函数负责处理用户的请求并返回响应,该响应可以是网页的HTML内容、重定向、404错误、XML文档、图像或者任何东西,一般在应用中的views.py编写,示例代码如下:

python 复制代码
from django.http import HttpResponse
python
def simpleView(request):
    return HttpResponse('Hello World!')

这里我们创建了名为simpleView的视图函数,该函数通过HttpResponse返回字符串。

注意:每个视图函数需要有个参数,该参数名通常是request。

编写视图函数后,可以在Django文件夹中的urls.py文件使用,也就是在URL路由文件使用,示例代码如下:

python 复制代码
from django.contrib import admin
from django.urls import path
from Product.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path('Simple/',simpleView)   # 路由Simple调用视图函数simpleView
]

在终端执行如下代码启动Django项目,

python 复制代码
python manage.py runserver

点击http://127.0.0.1:8000/,如下图所示:

因为在urls.py文件中的urlpatterns有两个url路径,所以Django不知道返回哪个url的响应,导致了报错,这时我们只要访问http://127.0.0.1:8000/Simple/即可返回simpleView视图函数的响应。

当我们想要返回HTML模板文件,需要使用render对象返回响应,示例代码如下:

python 复制代码
def SimpleRender(request):
    return render(request,'Hello World.html')

这里我们在Product文件夹创建了template文件夹并在该文件夹创建名为Hello World.html,该html文件内容如下:

python 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

接下来在urls.py文件中的urlpatterns添加如下代码:

python 复制代码
path('SimpleRender/',SimpleRender)

接下来访问http://127.0.0.1:8000/SimpleRender/即可访问到Hello World.html文件。

除了同步的视图函数,我们还可以使用异步视图函数,示例代码如下:

python 复制代码
async def SimpleRender(request):
    return render(request,'Hello World.html')

没错,在同步视图函数前加async即可变为异步视图函数,其他东西没区别。

相关推荐
青苔猿猿12 小时前
【3】jupyter单元格Cell操作
python·jupyter·单元格
Memory_荒年13 小时前
别让用户“剁手”把你搞破产:接口幂等性与防重的终极防线
后端
2301_7775993713 小时前
Golang怎么实现微服务日志聚合_Golang如何将多个服务的日志统一收集到一处查询【指南】
jvm·数据库·python
数琨创享TQMS质量数智化13 小时前
数琨创享Sigmar TQMS: 制造业质量管理报表体系的系统性重构
数据库·人工智能·重构
掘金者阿豪13 小时前
程序员必踩的一个坑:Codex 报错 Missing environment variable `OPENAI_API_KEY`,完整解决指南(附架构图)
后端
花间相见13 小时前
【AI私人家庭医生day01】—— 项目介绍
大数据·linux·人工智能·python·flask·conda·ai编程
m0_7478545213 小时前
MySQL如何缓解热点数据的更新瓶颈_合并更新请求与排队控制
jvm·数据库·python
zhangchaoxies13 小时前
React Flow 边缘丢失与错位问题的根源及 Hooks 重构方案
jvm·数据库·python
Wyz2012102413 小时前
如何在 React 中正确绑定 onClick 事件避免字符串赋值错误
jvm·数据库·python
神奇小汤圆13 小时前
从分析 Claude Code 源码到自己写一个:AnyCoder,支持 DeepSeek/Qwen 等任意大模型的开源 AI 编程 Agent
后端