DJango視圖(views)和模版(templates)的使用

視圖

  • 在django中,視圖對WEB請求進行迴應
  • 視圖接收reqeust對象作爲第一個參數,包含了請求的信息
  • 視圖就是一個Python函數,被定義在views.py中
  • 定義完成視圖後,需要配置urlconf,否則無法處理請求
  • 在Django中,定義URLconf包括正則表達式、視圖兩部分
  • Django使用正則表達式匹配請求的URL,一旦匹配成功,則調用應用的視圖
  • 注意:只匹配路徑部分,即除去域名、參數後的字符串
  • 在test1/urls.py插入booktest,使主urlconf連接到booktest.urls模塊

視圖代碼

# views.py
# 一個簡單的視圖,固定返回 hrllo world
def index(request):
    return HttpResponse('hello world')

模板

  • 模板是html頁面,可以根據視圖中傳遞的數據填充值
  • 模板和應用booktest是同級目錄
  • 模板的結構templates/應用名(booktest)/*.html
  • 將模板的地址信息拼接在settings.py文件中的TEMPLATES的DIRS值中:’DIRS’: [os.path.join(BASE_DIR, ‘templates’)],

urls代碼
方式一:直接修改原始的urls

# fanlie/fanlei/urls.py
from django.conf.urls import include, url
from django.contrib import admin
from booktest import views

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    # 如果匹配的是空就就調用views.index返回首頁
    url(r'^$',views.index),
]

方式二:在應用目錄下修改

# fanlie/fanlei/urls.py
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    # 什麼都不幹直接去booktest.urls去找相應的匹配
    url(r'^',include('booktest.urls')),
]

# fanlei/booktest/urls.py
from django.conf.urls import url
from . import views

urlpatterns = [
    # js結尾就是調用視圖中的函數 js
    url(r'.*.js',views.js),
    # 直接訪問代表是首頁,調用視圖中的函數index
    url(r'^$', views.index),
    # 如果是image開頭的代表是圖片,直接讓DJango去打開對應的圖片返回
    url(r'^images/(?P<path>.*)', 'django.views.static.serve', {'document_root':'/home/python/Desktop/fanlei/templates/booktest/images'}),

]

上面模板用到的視圖

from django.shortcuts import render

def index(request):
    # 返回引號中的文件的內容
    return render(request, 'booktest/index.html')

def js(request):
    # 返回引號中的文件的內容
    return render(request,'booktest/jquery-1.12.4.js')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章