扫码一下
查看教程更方便
Django 视图是一个创建视图的函数,只是一个接受网络请求并返回网络响应的 Python 函数。这个响应可以是网页的 HTML 内容,也可以是重定向,也可以是 404 错误,也可以是 XML 文档,也可以是图片等。
在 Django 中,必须在 views.py 文件中创建视图。
我们将在 firstProject 中创建一个简单的视图来展示“欢迎访问迹忆客!”
首先新建 firstProject/views.py 文件,然后在文件中添加如下代码
from django.http import HttpResponse
def hello(request):
text = """<h1>欢迎访问迹忆客!</h1>"""
return HttpResponse(text)
接下来,我们需要给该视图定义一个 URL ,具体关于 URL 映射的细节,我们在下一节 Django URL 介绍。这里我们先在 urls.py中添加一个 URL。代码如下
from django.urls import path
from . import views
urlpatterns = [
path('', views.hello),
]
然后启动服务器,浏览器中访问结果如下图所示
在这个视图中,我们使用 HttpResponse 来呈现 HTML。你可能也已经注意到我们在视图中硬编码了 HTML。
我们使用 HttpResponse 在视图中渲染 HTML。这不是呈现页面的最佳方式。Django 支持 MVT 模式,因此我们可以创建一个模板。下面我们来创建一个模板
firstProject/templates/hello.html
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>迹忆客</title>
</head>
<body>
<h1>欢迎访问迹忆客!</h1>
<p>这是使用模板</p>
</body>
</html>
然后修改我们的视图代码
import os
from pathlib import Path
from django.shortcuts import render
def hello(request):
path = os.path.join(Path(__file__).resolve().parent, "templates/")
template = path + "hello.html"
return render(request, template, {})
修改之后,服务会自动重启,我们只需在浏览器中访问即可
视图既然是一个函数,那么函数肯定是可以接受参数的。所以也可以通过参数给视图传参。
from django.http import HttpResponse
def hello(request, web):
text = "<h1>欢迎访问迹忆客 !</h1><p>参数是:%s</p>" % web
return HttpResponse(text)
然后修改 url,带上参数
from django.urls import path
from . import views
urlpatterns = [
re_path(r'(\w+)', views.hello),
]
访问结果如下图
请注意,参数将通过 URL 传递。更多关于URL的细节内容,我们下一节 Django URL 介绍。