1. 程式人生 > >認識django2.0讀書筆記(3)---第三章 檢視和URL配置

認識django2.0讀書筆記(3)---第三章 檢視和URL配置

文件下載地址:Django_2.0_中文教程  http://download.csdn.net/detail/julius_lee/6620099

線上地址:http://djangobook.py3k.cn/2.0/

Django 2.0 Book 關鍵內容記錄,主要是為了幫助記憶和理清整個框架,同時以後忘了可以檢視,回想。

1、  建立第一個django頁面:

hello world

沒有網頁框架,直接將helloworld儲存在html文件中;django靠view檢視和url產生

2、  第一個檢視

Views.py中輸入

from django.http import HttpResponse

def hello(request):

   return HttpResponse("Hello world ")

工作:

匯入HttpResponse類,定義hello檢視函式,至少需要一個request引數,並返回一個HttpResponse例項

3、  第一個URLconf

繫結檢視函式和URLconf

URLconf 的本質是URl模式及與檢視函式之間的對映表。即哪個url呼叫哪個檢視函式

步驟:

import mysite/views.py檔案中的hello檢視,即:

from mysite.views import hello

urlpatterns 變數中新增URLpattern,即:

新增該元組的一個元素,前面是正則匹配,後面是使用的檢視函式

注意:

python的搜尋路徑

首先查詢當前目錄,檔案不存在再查詢lib中的package下的檔案

URLpattern語法

簡而言之,就是匹配首尾,首尾要確定;尾斜槓會自動轉換,也可以設定

正則表示式剛學不久,不再重複

根目錄用’^$’表示,代表一個空字串

4、  django處理請求的過程

執行runserver後,manage.py在同一目錄下查詢setting.py檔案,讀取配置資訊包含template目錄,database,ROOT_URLCONF等;ROOT_URLCONF = 'mysite.urls'即指向mysite/urls.py

然後當用戶在位址列訪問***/hello時,django裝載URLconf,然後匹配URLconf中的URLpatterns,直到匹配成功。匹配成功後就呼叫view函式,將HttpRequest物件作為第一個引數。

總結一下:

進來的請求轉入/hello/.

Django通過在ROOT_URLCONF配置來決定根URLconf.

Django在URLconf中的所有URL模式中,查詢第一個匹配/hello/的條目。

如果找到匹配,將呼叫相應的檢視函式

檢視函式返回一個HttpResponse

Django轉換HttpResponse為一個適合的HTTP response, 以Web page顯示出來

5、  第二個檢視:動態內容

1)對於views.py

import datetime

def current_datetime(request):

   now = datetime.datetime.now()

   html = "<html><body>It is now%s.</body></html>" % now

   return HttpResponse(html)

匯入日期模組

賦值

格式化字串構造html響應

2)對於urls.py

from mysite.views import hello,current_datetime

urlpatterns = patterns('',

   ('^hello/$', hello),

   ('^time/$', current_datetime),

)
匯入檢視函式

增加URL對映模式對映time

3)URL配置的鬆耦合原則

即檢視函式的實現和URL的返回放在不同地方。檢視函式也可以被不同的url重用

6、  第三個檢視:動態URL

顯示當前時間加上時間偏差量/time/plus/1

常規思路:編寫多個url及檢視函式

簡化方法:

方法一:查詢字串引數,常規方法

方法二:使用萬用字元,django

編寫urls.py

(r'^time/plus/\d{1,2}/$', hours_ahead),#只允許一個或兩個數字

編寫hours_ahead檢視
def hours_ahead(request, offset):

   try:

       offset = int(offset)

   except ValueError:

       raise Http404()

    dt= datetime.datetime.now() + datetime.timedelta(hours=offset)

   html = "<html><body>In %s hour(s), it will be%s.</body></html>" % (offset, dt)

   return HttpResponse(html)

說明:

       Request作為HttpResponse的物件;

       Offset是從url中提取出來的,捕獲值永遠是字串型別,故需要型別轉換。當對非整數進行轉換時會出錯,報錯404;

7、  django的漂亮出錯頁面

頁面出錯後會給出大量資訊,一般異常資訊有:

異常資料型別,異常引數,哪個檔案異常,出錯的具體行位置

還可以顯示模板語法錯誤

對於django出錯頁的除錯,可以採用插入assert False 來代替平時使用的print語句。

8、本章總結:

以上就包含了檢視函式和硬編碼的HTML內容。


相關推薦

認識django2.0讀書筆記3--- 檢視URL配置

文件下載地址:Django_2.0_中文教程  http://download.csdn.net/detail/julius_lee/6620099 線上地址:http://djangobook.py3k.cn/2.0/ Django 2.0 Book 關鍵內容記錄,主要

認識django2.0讀書筆記7--- 表單

文件下載地址:Django_2.0_中文教程  http://download.csdn.net/detail/julius_lee/6620099 線上地址:http://djangobook.py3k.cn/2.0/ Django 2.0 Book 關鍵內容記錄,主要

認識django2.0讀書筆記6--- Django 站點管理

文件下載地址:Django_2.0_中文教程  http://download.csdn.net/detail/julius_lee/6620099 線上地址:http://djangobook.py3k.cn/2.0/ Django 2.0 Book 關鍵內容記錄,主要

認識django2.0讀書筆記1---第一 介紹

文件下載地址:Django_2.0_中文教程  http://download.csdn.net/detail/julius_lee/6620099 線上地址:http://djangobook.py3k.cn/2.0/ Django 2.0 Book 關鍵內容記錄,主要是

劉軍《社會網路分析導論》閱讀筆記3---

第六章 凝聚子群分析 社會結構研究的兩種視角:質的研究和量的研究 質的研究: 量的研究:網路研究 凝聚子群 派系 與成分割槽分:成分是任意兩點都可達的圖 缺點:要求太嚴格! n派系 注意:概念中說的是總圖!! 缺點: n宗派

javascript高階程式設計讀書筆記1 1 JavaScript 簡介

第 1章 JavaScript 簡介 1.1 JavaScript 簡史 1.2 JavaScript 實現 一個完整的 JavaScript 實現應該由下列三 個不同的部分組成(見圖 1-1)。  核心(ECMAScript)  文件物件模型(DOM)

《好好學習》閱讀筆記:自己的臨界知識

目錄 對世界充滿好奇,獨立思考 自己的臨界知識來源 1.自己感興趣的領域的重要知識(針對已存在儲備理論規律) ----與後一章 興趣與天賦的關係一起看    瞭解事物背後的規律之後還需要進一步找到結論的原始出處,這樣會對結論的成立條件有更清楚的認識,

metasploit 滲透測試魔鬼訓練營 筆記 情報收集系統

第三章情報蒐集系統 (上) 3.1 外圍資訊收集 3.1.1 通過DNS 和IP地址挖掘目標的網路資訊。 1. whois域名註冊資訊查詢 通過whois,我們能夠獲取到testfire.net的一些基本資訊。管理員的email,傳真,

tcp/ip 卷一 讀書筆記3為什麽既要有IP地址又要有MAC地址

維護 移動 理論 集線器 協議 合並 所有 變更 影響 網絡層 首先明確一點,並不是所有的網絡之間傳輸數據都需要mac地址和ip地址,比如說點對點線路之間的通信就沒有MAC地址,網絡層使用ipx協議時就沒有ip地址,但是在當前的主流網絡中,我們都使用ip地址和mac地址 既

程式碼大全 讀書筆記3軟體構建中的設計

1. 選擇程式語言 熟悉的語言 高階的語言 更能表達程式設計中各種概念的語言 每種語言都有自己的優點和弱點,要知道所選用語言的明確優點和弱點。 問問自己,採用的程式設計實踐是對你所用的程式語言的正確響應,還是受它的控制,記得“深入一種語言去程式設計”,不要僅“在一種語言上程式設計

kafka 權威指南--讀書筆記-3向kafka寫入資料

(1)kafka生產者設計和元件 (1)不同的應用場景對訊息有不同的需求,即是否允許訊息丟失、重複、延遲以及吞吐量的要求。不同場景對Kafka生產者的API使用和配置會有直接的影響。 例子1:信用卡事務處理系統,不允許訊息的重複和丟失,延遲最大500ms,對吞吐量要求較高

《Spring In Action》 讀書筆記3 -- factory-method的應用

因為單例類的特殊性,spring對於單例類的注入提供了factory-method屬性,先上程式碼。 OneInstance類: package spring.ioc02; public class OneInstance { public

Object-C高階程式設計讀書筆記3——Block的變數擷取

之前我們對於Block的定義為 “帶有自動變數值的匿名函式”。通過前面的介紹,知道了Block能夠保持傳入其中的變數的值,即使在Block外部這些傳入的值已經結束了其作用域,但是在Block被呼叫時,

《JavaScript 模式》讀書筆記3— 字面量建構函式1

  新的篇章開始了,本章開始,所有的內容都是十分有價值和意義的。本章主要的內容包括物件字面量、建構函式、陣列字面量、正則字面量、基本值型別字面量以及JSON等。在大家的工作和實際應用中也有一定的指導意義。   一、物件字面量   我們直接來先看一下程式碼: // 開始時定義一個空物件 var do

redis實戰筆記3-3 Redis命令

chan 4.4 ges 打包 常用 重要 讀取 表操作 nio 第3章 Redis命令 本章主要內容 字符串命令、 列表命令和集合命令 散列命令和有序集合命令 發布命令與訂閱命令 其他命令 在每個不同的數據類型的章節裏, 展示的都是該數據類型所獨有的、 最具代表性

Java程式設計思想讀書筆記1~13、16

目錄: 第1章 物件導論 1.1 伴隨多型的可互換物件   面向物件程式設計語言使用了後期繫結的概念。當向物件傳送訊息時,被呼叫的程式碼直到執行時才能確定。也叫動態繫結。   編譯器確保被呼叫方法的存在,並對呼叫引數和返回值執行型別檢查(Java是強型別的語言,無法

《Android 開發藝術探索》讀書筆記——Activity 的生命週期啟動模式

Activity 作為 Android 四大元件之首,它作為和使用者互動的介面,在開發中使用得可謂極其頻繁,所以弄清楚 Activity 的生命週期和啟動方式是非常重要的,要牢記。 1 Activity 的生命週期全面分析 1.1 典型情況下的生命週期分析 onCrea

Python刷題筆記3- 16進位制ascii碼互轉

今天看了下等級標示,原來kyu上面還有dan的等級,升級路漫漫,今天是5kyu題目 題目: Write a module Converter that can take ASCII text and convert it tohexadecimal. The class

短學期3次感悟

完成 越界 package 索引 lib 寫入 etc 用戶 spring 1.修改數據的各項配置都配置好之後,點擊修改還是不能修改客戶信息,跳出了下圖這個界面,百度之後顯示這個錯誤是指數組超出索引,數組越界了,但還是不會修改 把<s:action name=

redis實戰筆記4-4 數據安全與性能保障

4.6 特殊 pac 命名 可用 lsp sentinel 樂觀鎖 個人開發 本章主要內容 4.1 將數據持久化至硬盤 4.2 將數據復制至其他機器 4.3 處理系統故障 4.4 Redis事務 4.5 非事務型流水線( non-transactional pipeline