1. 程式人生 > >Python web入門:Django學習與實踐二(簡單頁面實現和建立一個模板)

Python web入門:Django學習與實踐二(簡單頁面實現和建立一個模板)

一、第一個頁面實現(“hello world”)

實現步驟:

        1.在views.py檔案中建立一個處理函式(引數名可以隨意,但是最好使用request,看起來清楚明瞭)

                def   index(request):

                        return render(request, template_name, context=None, content_type=None, status=None, using=None)

        此方法的作用---結合一個給定的模板和一個給定的上下文字典,並返回一個渲染後的 HttpResponse 物件。

       通俗的講就是把context的內容, 載入進templates中定義的檔案, 並通過瀏覽器渲染呈現.
       引數講解:

                request: 是一個固定引數, 沒什麼好講的。
                template_name: templates 中定義的檔案, 要注意路徑名. 比如'templates\polls\index.html', 引數就要寫‘polls\index.html’
               context: 要傳入檔案中用於渲染呈現的資料, 預設是字典格式
               content_type: 生成的文件要使用的MIME 型別。預設為DEFAULT_CONTENT_TYPE 設定的值。
               status: http的響應程式碼,預設是200.
               using: 用於載入模板使用的模板引擎的名稱。

       2.注意配置URL(在urls.py中)

               from . import views as bv

               #依葫蘆畫瓢

               url(r'^index/',views.home, name='home')

               注:在urls.py中標註出url配置有三種辦法,此處使用的是第一種

       3.可以訪問了

               可以使用localhost也可以使用127.0.0.1

               E:  127.0.0.1:8000/index                                注:此處的index就是相應處理函式的名字

二、建立一個模板

1.URL配置的另一種方式

           在一種配置URL的方式會導致當請求函式過多時urls.py會顯得很混亂,因此採用第三種URL配置方法:使用include函式

           Including another URLconf

         1. Import the include() function: from django.conf.urls import url, include
         2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
     此處的處理方法是在每個應用的內部建立自己的urls.py檔案,其格式內容與根目錄下urls.py
     例如:配置說明使用include(‘blog.urls’)則是指向blog內自己的urls檔案,blog為訪問blog中模板的總入口

2.開發第一個模板(Template)

(1)什麼是模板?

          模板就是用於前端顯示的一個框架,是一個HTML檔案,使用Django模板語言(DTL)編寫

(2)開發步驟

          1)在應用的根目錄下建立一個名為Templates的目錄

          2)在該目錄下建立模板檔案。如:index.html

          3)在views.py中使用render返回模板,也就是render的第二個引數

(3)DTL應用初識

          render()函式支援一個字典型別的引數

         該字典是將資料傳遞給模板,鍵為引數名(此處可以聯想到JavaWeb中的“域”的問題和“$”的使用)

         在模板中使用{{ 鍵名 }}來直接使用資料     (這點和javaWeb也是極其相似的)

(4)注意事項

        Dj ango查詢模板問題:Django會根據INSTALLED_APPS的新增順序查詢templates,不同templates目錄中的同名HTML檔案會造成命名衝突

        解決方法:在每個應用的Templates中建立以應用名為名的資料夾,將模板檔案放進去