Day41-繼續Django之旅

    今天沒有跟老師的節奏碼代碼,因爲我肯定跟不上。我喜歡邊碼代碼一邊理解邏輯和其中涉及的各方面知識,所以特別容易跑偏和掉隊。今天純聽講終於跟上了,而且還聽得挺有滋味的,算是聽懂了吧。晚自習多敲敲代碼,加深理解。今天終於搞明白了mvc和mvt,mvc是優秀的web框架遵循的標準模式,而Django有自己的獨特模式即mvt,仍然遵循mvc只不過c是由框架本身處理,多的T是指templates即模型。

    首先,啓動虛擬環境:

    在虛擬環境下創建新項目:

於是就生成了以下文件夾和文件:

     

setting文件裏面已經自帶了很多Django的命令啊類型方法啊,先不管它,來修改settings的時區:

確認Django開發服務器是否運行:

在主項目目錄下新建view.py文件並輸入代碼:

from django.http import Http404, HttpResponse
import datetime


def hello(request):
    return HttpResponse('Hello, world!')

def current_datetime(request):
    now = datetime.datetime.now()
    html = 'It is now %s.' % now
    return HttpResponse(html)

def hours_ahead(request, offset):
    try:
        offset = int(offset)
    except ValueError:
        raise Http404()
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
    html = 'In %s hour(s), it will be %s.' % (offset, dt)
    return HttpResponse(html)

導入模塊Http404\HttpResponse、datetime,創建名爲hello的視圖函數,傳參名爲request,返回HttpResponse實例化的一句話‘helloworld’;然後才能創建方便計算日期的函數,跟hello一樣,返回叫做html字符串的 HttpResponse 實例化對象;第三個函數是一個嘗試計算偏移時間的方法,抄的教程,試試效果。

    接着要修改url文件之後,才能把視圖的內容顯示在網頁上,Django才知道哪個url要調用view視圖文件

from django.conf.urls import url, include
from django.contrib import admin
from newsite.views import hello, current_datetime, hours_ahead


urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/$', hello),
    url(r'^time/$', current_datetime),
    url(r'^time/plus/(\d{1,2})/$', hours_ahead),
]

對 url 配置做了三處改動。其一,在頂部導入了hello、current_datetime 函數;其二,添加兩個 URL 模式,把 hello和time/ url 映射到那個新視圖上。這就是接口,就是API呀!同時,這就叫做鬆耦合!這些url的組件可以隨時改動,影響很小甚至沒有影響到視圖view文件,url與視圖view這種情況就叫做鬆耦合。呼呼,終於形象的搞懂了!其三,增加了第三個url即time/plus

    好了,我真正意義上的第一個Django實例可以開始運行了:

(venv) D:\wordspace\newsite>python manage.py runserver   # 啓動Django的服務器

第一個url:hello的效果:

第二個url:time的效果

第三個url:time/plus/3的效果:

第三個url:time/plus/24的效果:

第三個url:time/plus/110的效果:

可以看出,第三個url就是做了一個時間方面的運算,最後超過設定值就拋出系統錯誤。這個例子還順便把正則表達式和python相關的基礎知識複習了一遍。

好了,總算是親手把Django第一個案例做完了。其實今天還學習了的Django後續更多的知識,比如通過Django框架,API到MySQL的增刪改查、API到HTML的相關設置,如何建立一個簡單CRM客戶關係管理系統,從web頁面輸入用戶數據自動記錄到數據庫,又如何通過Django的接口,把數據庫的數據通過不同的元素進行查找。還學習了一對一、一對多、多對多。知識點太多了,明天再好好的親手做案例把這些整理清楚。




   

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