1. 程式人生 > >Django學習筆記2

Django學習筆記2

新建一個專案(project), 名稱為 mysite

  1. django-admin startproject myblog  

執行後,如果成功的話, 我們會看到如下的目錄樣式
  1. myblog  
  2. ├── manage.py  
  3. └── myblog  
  4.     ├── __init__.py  
  5.     ├── settings.py  
  6.     ├── urls.py  
  7.     └── wsgi.py  

我們會發現執行命令後,新建了一個 myblog 目錄,其中還有一個 myblog 目錄,這個子目錄 myblog 中是一些專案的設定settings.py 檔案,總的urls配置檔案
urls.py 以及部署伺服器時用到的 wsgi.py 檔案,__init__.py是python包的目錄結構必須的,與呼叫有關。

到外層那個 myblog 目錄下(不是myblog中的myblog目錄)

新建一個應用(app), 名稱叫 blog

  1. python manage.py startapp blog # blog 是一個app的名稱

myblog中多個一個 blog 資料夾,其中有以下檔案。
  1. blog/  
  2. ├── __init__.py  
  3. ├── admin.py  
  4. ├── models.py  
  5. ├── tests.py  
  6. └── views.py  

把我們新定義的app加到settings.py中的

INSTALL_APPS

修改 myblog/myblog/settings.py
  1. INSTALLED_APPS = (  
  2.     'django.contrib.admin',  
  3.     'django.contrib.auth',  
  4.     'django.contrib.contenttypes',  
  5.     'django.contrib.sessions',  
  6.     'django.contrib.messages',  
  7.     'django.contrib.staticfiles',  
  8.     'blog',  
  9. )  

新建的 app 如果不加到 INSTALL_APPS 中的話, django 就不能自動找到app中的
模板檔案(app-name/templates/下的檔案)和靜態檔案(app-name/static/中的檔案)

定義檢視函式(訪問頁面時的內容)

我們在blog這個目錄中,把views.py開啟,修改其中的原始碼,改成下面的
  1. #coding:utf-8
  2. from django.http import HttpResponse  
  3. def index(request):  
  4.     return HttpResponse("hello")  

第一行是宣告編碼為utf-8, 因為我們在程式碼中用到了中文,如果不宣告就報錯.

第二行引入HttpResponse這個類,它是用來向網頁返回內容的,就像Python中的 print 一樣,只不過 HttpResponse 是把內容顯示到網頁上。

義了一個index()函式,第一個引數必須是 request,與網頁發來的請求有關,request 變數裡面包含getpost的內容,使用者瀏覽器,系統等資訊在裡面

函式返回了一個 HttpResponse 物件,可以經過一些處理,最終顯示幾個字到網頁上。

注意:每個請求對應一個函式,函式必須返回一個響應

          函式必須存在一個引數,一般約定為request

          每個相應(函式)對應一個URL

那問題來了,我們訪問什麼網址才能看到剛才寫的這個函式呢?怎麼讓網址和函式關聯起來呢?

定義檢視函式相關的URL(網址)(即規定 訪問什麼網址對應什麼內容)

開啟 myblog/myblog/urls.py 這個檔案, 修改其中的程式碼
  1. import blog.views as bv  
  2. urlpatterns = [  
  3.     url(r'^index/', bv.index),  
  4. ]  

第一行將blog.view引進來 方便引進view中的函式index

第三行正則表示式

注意:每個URL都以url的形式寫出來

           url函式存放在urlpatterns列表中

           url函式有3個引數:URL(正則),對應方法,名稱

在終端上執行 python manage.py runserver