视图函数的应用

1.实现将当前日期和时间编码为HTML文档并返回的简单视图函数

文章目录

1.1打开visualcode 按图示点击 创建新的终端

在这里插入图片描述
点击终端 并切换到python目录下 输入以下命令

 cd E:/python/
 E:\python> django-admin startproject ViewDjango
 E:\python> cd ViewDjango   
 E:\python\ViewDjango> django-admin startapp SimpleView

ViewDjango为项目根目录,SimpleView为具体的应用目录。

1.2然后定义ViewDjango项目根目录下的路由文件urls.py,实现到SimpleView应用的路由路径

找到此路径【ViewDjango\ViewDjango\urls.py】输入以下命令

from django.contrib import admin
from django.urls import include, path

# define URLconf			
urlpatterns = [					# 定义ViewDjango项目应用的根URLconf模块
    path('simple/', include('SimpleView.urls')),	# 通过path()函数定义一个路由路径'simple/',对应通过include方式包括的SimpleView应用的URLconf模块'SimpleView.py'
    path('admin/', admin.site.urls),
]
 
输入完ctrl+s 保存

1.3创建SimpleDjango应用目录中的urls.py

1.1 首先选中SimpleDjango 然后右键 选择new file

在这里插入图片描述

1.2命名新建的file为urls.py即可

我这里已经创建过urls.py 不能创建同一名字的文件
在这里插入图片描述

1.4接下来,定义SimpleDjango应用目录中的路由文件urls.py

找到【ViewDjango\SimpleView\urls.py】并输入以下命令

#---   SimpleView urls.py   ---#

from django.urls import include, path
from . import views

# define URLconf
urlpatterns = [		# 定义了应用的URLconf模块
    path("", views.index, name='index'),	# 通过path函数将应用的默认路径解析为视图函数views.index
    path("curdatetime/", views.current_datetime),	# 通过path函数将路径curdatetime解析为视图函数
]

输入完crtl+s 保存

1.5最后,定义SimpleDjango应用中的视图函数文件views.py

找到此路径【ViewDjango\SimpleView\view.py】并输入以下命令

#---   SimpleView views.py   ---#

from django.http import HttpResponse
from django.shortcuts import render

# Create your default views.

def index(request):	# 定义默认视图函数views.index
    return HttpResponse("Hello, SimpleView App!")	# 返回对象文本

# Create your datetime views.

import datetime	# 导入日期和时间类型对象datetime

def current_datetime(request):
    now = datetime.datetime.now()	# 通过时间日期调用now()方法,获取当前时间
    html = "<html><body>It is now %s.</body></html>" % now	# 定义html,并传递当前时间到页面代码中
    return HttpResponse(html)	# 返回页面代码

输入完crtl+s 保存

1.6测试视图

在终端输入以下命令 路径保持一致

PS E:\python\ViewDjango> python manage.py runserver

1.7 在浏览器输入两个网址 进行验证 效果如下

 (http://localhost:8000/simple/)
(http://localhost:8000/simple/curdatetime/)

在这里插入图片描述

在这里插入图片描述

2.返回错误视图

  • 这里我们通过HttpResponseNotFound子类设计一个返回错误视图的应用,用来模拟返回404错误状态。

2.1将返回错误视图函数应用的名称定义为“ErrorView

打开终端创建错误视图应用 路径保持一致 在ViewDjango下创建

PS E:\python\ViewDjango> django-admin.exe startapp ErrorView

2.2然后,重新定义ViewDjango项目根目录下的路由文件urls.py,实现到ErrorView应用的路由路径

在此路径【ViewDjango\ViewDjango\urls.py】输入以下命令并保存

from django.contrib import admin
from django.urls import include, path

# define URLconf
urlpatterns = [
    path('simple/', include('SimpleView.urls')),
    path('error/', include('ErrorView.urls')),	# 通过函数新增路由路径,通过include包括应用的URLconf模块
    path('admin/', admin.site.urls),
]

2.3接下来,定义ErrorView应用目录中的路由文件urls.py

在此路径【ViewDjango\ErrorView\urls.py】输入以下命令 并保存

#---   ErrorView urls.py   ---#

from django.urls import include, path
from . import views

# define URLConf
urlpatterns = [
    path("", views.index, name='index'),	# 通过path函数将应用默认路径解析为视图函数
    path("pagenotfound/<int:p>/", views.error_view),# 通过path函数将路径解析为视图函数,添加一个路由参数,p用于选择不同的视图返回值
]

2.4最后,定义ErrorView应用中的视图函数views.py

在此路径【ViewDjango\ErrorView\views.py】输入以下命令 并保存

#---   ErrorView views.py   ---#

from django.http import HttpResponse, HttpResponseNotFound
from django.shortcuts import render

# import logging
import logging
# get logger
logger = logging.getLogger('log')

# Create your views here.

# default view
def index(request):		# 定义默认视图函数
    return HttpResponse("Hello, ErrorView App!")

# error view
def error_view(request, p):		# 定义错误视图函数
    print("p =", p)
    if p:
        return HttpResponse("Page not found!")
    else:
        return HttpResponseNotFound("HttpResponseNotFound --- Page not found!")

2.5验证效果 输入以下网址进行验证

(http://localhost:8000/error/)
(http://localhost:8000/error/pagenotfound/1/)
(http://localhost:8000/error/pagenotfound/0/)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.直接返回状态码视图

  • 我们设计一个直接返回HTTP状态码视图的应用,用来模拟返回任意HTTP状态码。

3.1首先,将直接返回状态码视图函数应用的名称定义为StatusView

打开终端 输入以下命令 在python下的ViewDjango路径下输入 注意 前面的项目app 不影响操作

PS E:\python\ViewDjango> django-admin.exe startapp StatusView

在这里插入图片描述

3.2然后,重新定义ViewDjango项目根目录下的路由文件urls.py,实现到StatusView应用的路由路径

在此路径【ViewDjango\ViewDjango\urls.py】 输入以下命令

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('simple/', include('SimpleView.urls')),
    path('error/', include('ErrorView.urls')),
    path('status/', include('StatusView.urls')),	# 新增路径status
    path('admin/', admin.site.urls),
]

在这里插入图片描述

3.3接下来,定义StatusView应用目录中的路由文件urls.py

在此路径 【ViewDjango\StatusView\urls.py】 输入以下命令

#---   StatusView urls.py   ---#

from django.urls import include, path
from . import views

# define URLConf
urlpatterns = [
    path("", views.index, name='index'),	# 应用默认路径解析为视图函数
    path("statuscode/<int:scode>/", views.status_code_view),	# 将路径解析为视图函数,添加路由参数
]

在这里插入图片描述

3.4最后,定义StatusView应用中的视图函数文件views.py

在以下路径【ViewDjango\StatusView\views.py】 输入以下命令

#---   StatusView views.py   ---#

from django.http import HttpResponse
from django.shortcuts import render

# import logging
import logging
# get logger
logger = logging.getLogger('log')

# Create your views here.

# default view
def index(request):
    return HttpResponse("Hello, StatusView App!")

# status code view
def status_code_view(request, scode):
    print("status coce : ", scode)
    # Return a http response code.
    return HttpResponse(status=scode)

3.5进行验证

浏览器输入(http://127.0.0.1:8000/status/) 效果如下
在这里插入图片描述

接着在浏览器输入shift+ctrl+i 打开控制台
在这里插入图片描述
找到Network
在这里插入图片描述
然后在浏览器输入http://127.0.0.1:8000/status/statuscode/201/
得到下图效果
在这里插入图片描述

  • 浏览器控制台查看一下返回的HTTP状态码,显示为“Status:201 Created”,状态码201与URL地址中输入的数值是对应的 在下方红框查看状态码

该效果的目的就是验证url是否成功调用了视图 而最后HTTP显示为201 Created 说明url成功调用了视图

  • 补充视图和路由的关系 如下

视图就是通过路由调用的 且路由决定了用户
访问url对应的视图

4.HTTP 404异常视图

  • 这里设计一个Http404异常视图的应用,用来实现HTTP 404错误的异常捕捉

4.1首先,将Http404异常视图应用的名称定义为Http404View

PS E:\python\ViewDjango> django-admin.exe startapp Http404View

在这里插入图片描述

4.2然后,重新定义ViewDjango项目根目录下的路由文件urls.py,实现到Http404View应用的路由路径

找到此路径【ViewDjango\ViewDjango\urls.py】输入以下命令

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('simple/', include('SimpleView.urls')),
    path('error/', include('ErrorView.urls')),
    path('status/', include('StatusView.urls')),
    path('http404/', include('Http404View.urls')),
    path('admin/', admin.site.urls),
]

在这里插入图片描述

4.3接下来,定义Http404View应用目录中的路由文件urls.py

找到此路径【ViewDjango\Http404View\urls.py】 输入以下命令

#---   Http404View urls.py   ---#

from django.urls import include, path
from . import views

# define URLconf
urlpatterns = [
    path("", views.index, name='index'),
    path("zeroexp/", views.zero_exp),
]

在这里插入图片描述

4.4 最后,定义Http404View应用中的视图函数文件

找到此路径【ViewDjango\Http404View\view.py】 输入以下命令

#---   Http404View views.py   ---#

from django.http import HttpResponse
from django.http import Http404
from django.shortcuts import render

# Create your default views.

# default view
def index(request):
    return HttpResponse("Hello, Http404View App!")

#  view
def zero_exp(request):
    try:
        r = 1 / 0
    except:
        raise Http404("1 / 0 does not exist")  # 注意是raise,不是return
    return render(request, 'template/404.html', {'r': r})

4.5验证测试

浏览器访问 http://localhost:8000/http404/
在这里插入图片描述
然后,在浏览器中输入Http404View应用异常视图的路由地址http404/zeroexp/,页面中显示了代码中通过Http404()方法定义的异常信息。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值