向昆汀的致敬,「被解放的姜戈」
django意外的和昆汀的電影重名。這大大提高了django的知名度。另外利用電影,宣傳了這個奇怪的詞的發音。
下面是姜戈的初體驗。
啟動計算機中的python,嘗試載入django模組。如果可以成功載入,那麼說明django已經安裝好:
import如果django還沒有安裝,可以在命令列,嘗試使用pip安裝:django
print(django.version)
sudo pip install django或者使用easy_install:
sudo easy_install django黑夜中,姜戈和鐐銬說再見。使用下面的命令建立專案:
django-admin.py startproject mysite在當前目錄下,將生成mysite資料夾。其檔案樹結構如下:
mysite進入mysite,啟動伺服器:├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
python manage.py runserver 8000上面的8000為埠號。如果不說明,那麼埠號預設為8000。
開啟瀏覽器,訪問可以看到伺服器已經在執行:
雖然有乙個能跑的伺服器,但什麼內容都沒有。
「賞金?獵人?」 姜戈滿臉困惑。
在http協議中可以看到,網路伺服器是「請求-回應」的工作模式。客戶向url傳送請求,伺服器根據請求,開動後廚,並最終為客人上菜。django採用的mvc結構,即點單、廚房、儲藏室分離。
我們需要乙個指揮員,將url對應分配給某個物件處理,這需要在mysite/mysite下的urls.py設定。python會根據該程式,將url請求分給某個廚師。
mysite將urls.py修改為:├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
from django.conf.urls import patterns, include, url我們新增了最後一行。它將根目錄的url分配給乙個物件進行處理,這個物件是mysite.views.first_page。from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns(''
, # examples:
# url(r'^$
', '
mysite.views.home
', name='
home'),
# url(r
'^blog/
', include('
blog.urls
')),
url(r
'^admin/
', include(admin.site.urls)),
url(r'^$
', '
mysite.views.first_page'),
)
用以處理http請求的這一物件還不存在,我們在mysite/mysite下建立views.py,並在其中定義first_page函式:
世界好")
第一行說明字元編碼為utf-8,為下面使用中文做準備。first_page函式的功能,是返回http回覆,即這裡的世界好
。first_page有乙個引數request,該引數包含有請求的具體資訊,比如請求的型別等,這裡並沒有用到。
頁面效果如下:
姜戈接過槍,一槍射出去。「天哪!」 德國人驚呆了。
我們的根目錄下,出現了乙個新的叫做west的資料夾。
mysite/'django.contrib.admin',├── manage.py
├── mysite
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
└── west
├── admin.py
├── __init__.py
├── models.py
├── tests.py
└── views.py
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'west',
)姜戈看到曾經的工頭們,眼中充滿怒火。
另一方面,為了去耦合,實現模組化,我們應該在west/urls.py中設定url訪問物件。具體如下:
首先,修改mysite/urls.py:
from django.conf.urls import注意新增加的最後一行。這裡,我們提醒指揮員,對於west/的訪問,要參考west/urls.py。patterns, include, url
from django.contrib import
admin
admin.autodiscover()
urlpatterns = patterns(''
,
#examples:
#url(r'^$', 'mysite.views.home', name='home'),
#url(r'^blog/', include('blog.urls')),
url(r
'^admin/
', include(admin.site.urls)),
url(r'^$
', '
mysite.views.first_page'),
url(r
'^west/
', include('
west.urls
')),
)
隨後,我們建立west/urls.py,新增內容:
from django.conf.urls import將url對應west下,views.py中的first_page函式。patterns, include, url
urlpatterns = patterns(''
, url(r'^$
', '
west.views.first_page'),
)
最後,在west下,修改views.py為:
西餐")
訪問檢視效果。
「你們這些混蛋,我乙個都不會放過!」 姜戈大吼。
可以看到,django的建立過程非常簡單。但這只是初次嘗試django。為了建立乙個完整功能的**,還需要呼叫django許多其它的功能。
姜戈的解放,才剛剛開始。
歡迎閱讀「被解放的姜戈」系列文章。
被解放的姜戈01 初試天涯
本系類教程基本 部分原創以下原創作者 向昆汀的致敬,被解放的姜戈 django意外的和昆汀的電影重名。這大大提高了django的知名度。另外利用電影,宣傳了這個奇怪的詞的發音。下面是姜戈的初體驗。博主採用了pycharm5.0.3 專業版 配合python3.4.3 django1.9.5 進行開發...
被解放的姜戈02 莊園疑雲
資料庫是一所大莊園,藏著各種寶貝。乙個沒有資料庫的 所能提供的功能會非常有限。為了找到心愛的人,姜戈決定一探這神秘的糖果莊園。連線資料庫 django為多種資料庫後台提供了統一的呼叫api。根據需求不同,django可以選擇不同的資料庫後台。mysql算是最常用的資料庫。我們這裡將django和my...
被解放的姜戈08 遠走高飛
之前在單機上實現了乙個django伺服器 被解放的姜戈07 馬不停蹄 現在我們可以把這個伺服器推上乙個雲平台。這裡我選擇使用阿里雲。看著復仇的火焰燃燒,姜戈露出得意的笑容。在阿里雲官網 aliyun.com 頁面註冊阿里雲賬號。登入後選擇雲伺服器ecs,並選擇 建立例項 選擇作業系統ubuntu 1...