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/)