認識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