视图函数的应用
1.实现将当前日期和时间编码为HTML文档并返回的简单视图函数
文章目录
- 1.实现将当前日期和时间编码为HTML文档并返回的简单视图函数
- 1.1打开visualcode 按图示点击 创建新的终端
- 1.2然后定义ViewDjango项目根目录下的路由文件urls.py,实现到SimpleView应用的路由路径
- 1.3创建SimpleDjango应用目录中的urls.py
- 1.1 首先选中SimpleDjango 然后右键 选择new file
- 1.2命名新建的file为urls.py即可
- 1.4接下来,定义SimpleDjango应用目录中的路由文件urls.py
- 1.5最后,定义SimpleDjango应用中的视图函数文件views.py
- 1.6测试视图
- 1.7 在浏览器输入两个网址 进行验证 效果如下
- 2.返回错误视图
- 2.1将返回错误视图函数应用的名称定义为“ErrorView
- 2.2然后,重新定义ViewDjango项目根目录下的路由文件urls.py,实现到ErrorView应用的路由路径
- 2.3接下来,定义ErrorView应用目录中的路由文件urls.py
- 2.4最后,定义ErrorView应用中的视图函数views.py
- 2.5验证效果 输入以下网址进行验证
1.1打开visualcode 按图示点击 创建新的终端
点击终端 并切换到python目录下 输入以下命令
cd E:/python/E:\python> django-admin startproject ViewDjangoE:\python> cd ViewDjango E:\python\ViewDjango> django-admin startapp SimpleViewViewDjango为项目根目录,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.indexpath("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.indexreturn HttpResponse("Hello, SimpleView App!") # 返回对象文本# Create your datetime views.import datetime # 导入日期和时间类型对象datetimedef 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/)