Django 视图

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),
]

然后启动服务器,浏览器中访问结果如下图所示

Django-访问视图

在这个视图中,我们使用 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, {})

修改之后,服务会自动重启,我们只需在浏览器中访问即可

Django-模板视图访问

视图既然是一个函数,那么函数肯定是可以接受参数的。所以也可以通过参数给视图传参。

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),
]

访问结果如下图

Django-视图参数访问

请注意,参数将通过 URL 传递。更多关于URL的细节内容,我们下一节 Django URL 介绍。

查看笔记

扫码一下
查看教程更方便