利用Django進行Web開發系列(一)

jopen 9年前發布 | 138K 次閱讀 Django Web框架
 

利用Django進行Web開發系列(一)

1 寫在前面

在沒有接觸互聯網這個行業的時候,我就一直很好奇網站是怎么構建的。現在雖然從事互聯網相關的工作,但是也一直沒有接觸過Web開發之類的東西, 但是興趣終歸還是要有的,而且是需要自己動手去實踐的。Web開發的途徑有好多種,比如傳統的.Net,還有很火爆的Java。Python作為一種靈活 好學的腳本語言,已經越來越受程序員的歡迎和熱捧,甚至成為程序員的必備技能。Django是Python的Web開放框架,好多人說學習Python就 是在學Django,從這也可以看出Django的強大。博主也是剛剛接觸Django,純屬個人興趣愛好,望與廣大博友共同學習和討論。

2 什么是Web開發?

在介紹什么是Web開發之前,先簡單提及一下大家熟悉的WWW。WWW(World Wide Web)簡稱萬維網。通俗地說,WWW是一套技術規范,它里面包含很多技術和協議,例如html技術、url、http協議等。人們通過這套技術規范,可 以對Internet網絡上主機的資源進行描述,進而可以通過一個WWW的客戶端訪問這些資源。常用的WWW客戶端有IE、Foxfire等瀏覽器。

由于WWW技術的出現,人們可以在世界上的任何一個角落,通過一個瀏覽器訪問因特網上任何一臺遠程計算機上的資源,或與遠程計算機進行通訊。20世紀由于WWW技術的出現,因而誕生了“地球村”的概念。

而Web就是用來表示Internet主機上供外界訪問的資源的。在英語中web即表示網頁的意思,網頁也統稱為web資源。Internet上供外界訪問的Web資源主要分為如下兩類:

靜態web資源:指web頁面中供人們瀏覽的數據始終是不變的,例如,html頁面;

動態web資源:指web頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同。

微軟對Web開發的定義:Web開發是一個指代網頁或網站編寫過程的廣義術語。這些頁面可能是類似于文檔的簡單文本和圖形。頁面也可以是交互式 的,或顯示變化的信息。編寫交互式服務器頁面略微復雜一些,但卻可以實現更豐富的網站。如今的大多數頁面都是交互式的,并提供了購物車、動態可視化甚至復 雜的社交網絡等現代在線服務。

通俗的說 ,web 開發就是我們說的做網站。 它分為網頁部分 和邏輯部分也就是我們說的前臺與后臺, 前臺負責與用戶的交互, 顯示數據。 HTML 顯示數據, CSS 控制樣式, JS 編寫復雜交互。 后臺編寫處理這些邏輯的程序, 可以用 C #,java,php 等語言。

現在 web 應用程序已經和我們的生活息息相關, 小到我們的博客, 空間, 大到大型社交網站如 非死book、 人人等。 更復雜的如電子商務中的 C 2C,B2B 等網站, 都給我們帶來了很大的方便。

那么 Web 開發與 CS 開發有什么區別呢 ?

利用Django進行Web開發系列(一)

C/S結構,即Client/Server(客戶機/服務器)結構,是大家熟知的軟件系統體系結構,通過將任務合理分配到Client端和Server端,降低了系統的通訊開銷,可以充分利用兩端硬件環境的優勢。

利用Django進行Web開發系列(一)

B/S結構,即Browser/Server(瀏覽器/服務器)結構,是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種 結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現,形成所謂3-tier ( 三層架構 ) 結構。B/S結構利用不斷成熟和普及的瀏覽器技術實現原來需要復雜專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件系統構造技術,這種結構更成為當今應用軟件的首選體系結構。

首先必須強調的是C/S和B/S并沒有本質的區別:B/S是基于特定通信協議(HTTP)的C/S架構,也就是說B/S包含在C/S中,是特殊的C/S架構。

從根本上說 ,CS 開發更適合開發單機的應用程序 或者比較固定業務邏輯 而且對硬件要求較高的程序 比如 一些應用軟件 如殺毒軟件 教學軟件這些與服務器邏輯交互較少 而且程序與客戶端硬件有密切聯系的程序

BS 開發趨向于電子商務、 社交網絡等這些需要服務端密切配合的軟件 他由于客戶端只有一個瀏覽器 開發方便 用戶體驗簡潔 但是會受到網絡 通信的限制 必須考慮服務器性能。

3 什么是Django?

借用djangobook中的一段話介紹來解釋一下Django到底是什么。 “Django是一個可以使Web開發工作愉快并且高效的Web開發框架。使用Django,使你能夠以最小的代價構建和維護高質量的Web應用。”

從好的方面來看,Web 開發激動人心且富于創造性;從另一面來看,它卻是份繁瑣而令人生厭的工作。 通過減少重復的代碼,Django 使你能夠專注于 Web 應用上有 趣的關鍵性的東西。 為了達到這個目標,Django 提供了通用Web開發模式的高度抽象,提供了頻繁進行的編程作業的快速解決方法,以及為“如何解決問題”提供了清晰明了的約定。 同時,Django 嘗試留下一些方法,來讓使用者根據需要在framework之外來開發。

4 MVC框架介紹

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面 顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用于 映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

簡單的說, MVC 是一種軟件開發的方法,它把代碼的定義和數據訪問的方法(模型)與請求邏輯 (控制器)還有用戶接口(視圖)分開來。 這種設計模式關鍵的優勢在于各種組件都是 松散結合 的。這樣,每個由 Django驅動 的Web應用都有著明確的目的,并且可獨立更改而不影響到其它的部分。 比如,開發者 更改一個應用程序中的 URL 而不用影響到這個程序底層的實現。 設計師可以改變 HTML 頁面 的樣式而不用接觸 Python 代碼。 數據庫管理員可以重新命名數據表并且只需更改一個地方,無需從一大堆文件中進行查找和替換。

利用Django進行Web開發系列(一)

5 Python Django的安裝

首先,在 Django官網 上下載適合自己Python的Django版本,現在官方發布的最新版本是Django1.8.2。在安裝Django前首先確定你已成功安裝了python。

Windows系統下安裝Django:

解壓縮下載的Django壓縮包,找到里面的setup.py文件,然后打開cmd命令窗口,在其對應的路徑下執行如下命令:

python setup.py install

Linux系統下安裝Django:

以此在shell中輸入如下命令:

$ tar xzvf Django-*.tar.gz $ cd Django-* $ sudo python setup.py install

確認Django是否成功安裝:

在python IDE下輸入:

import django
django.VERSION

如果你看到如下結果,就說明你的Django已經成功安裝了:

(1, 8, 2, 'final', 0)

6 運行開發服務器

一但你安裝好了python,django和(可選的)數據庫及相關庫,你就可以通過創建一個project,邁出開發django應用的第一步。

首先,開始新建第一個項目。

找到你的django-admin.py文件,并把它加入系統路徑。如果用的是setup.py工具安裝的Django,django- admin.py應該已被加入了系統路徑中。樓主的django-admin.py目錄為C:\Python27\Lib\site-packages \Django-1.8.2-py2.7.egg\django\bin。

進入該目錄下,運行如下命令,新建一個項目:

python django-admin.py startproject mysite

startproject 命令創建一個目錄,包含一個名為mysite的文件夾和一個名為manage.py的文件。其中mysite文件夾下包含有四個文件,分別為:

__init__.py

settings.py

urls.py

wsgi.py

為了安裝后更多的體驗,讓我們運行一下django開發服務器看看我們的準系統。django開發服務是可用在開發期間的,一個內建的,輕量的 web服務。 我們提供這個服務器是為了讓你快速開發站點,也就是說在準備發布產品之前,無需進行產品級 Web 服務器(比如 Apache)的配置工作。 開發服務器監測你的代碼并自動加載它,這樣你會很容易修改代碼而不用重啟動服務。如果你還沒啟動服務器的話,請切換到你的項目目錄里 (cd mysite),運行下面的命令:

python manage.py runserver

你會看到如下內容:

Django version 1.8.2, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK

這將會在端口8000啟動一個本地服務器, 并且只能從你的這臺電腦連接和訪問。 既然服務器已經運行起來了,現在用網頁瀏覽器訪問  http://127.0.0.1:8000/ 。 你應該可以看到一個令人賞心悅目的淡藍色Django歡迎頁面。 它開始工作了。

界面如下所示:

利用Django進行Web開發系列(一)

注意:雖然 django 自帶的這個 web 服務器對于開發很方便,但是,千萬不要在正式的應用布署環境中使用它。 在同一時間,該服務器只能可靠地處理一次單個請求,并且沒有進行任何類型的安全審計。

更改Development Server 的主機地址或端口。 默認情況下,runserver命令在8000端口啟動開發服務器,且僅監聽本地連接。 要想要更改服務器端口的話,可將端口作為命令行參數傳入:

python manage.py runserver 8080

通過指定一個 IP 地址,你可以告訴服務器–允許非本地連接訪問。 如果你想和其他開發人員共享同一開發站點的話,該功能特別有用。“0.0.0.0”這個IP地址,告訴服務器去偵聽任意的網絡接口。

python manage.py runserver 0.0.0.0:8000

完成這些設置后,你本地網絡中的其它計算機就可以在瀏覽器中訪問你的 IP 地址了。比如: http://192.168.1.103:8000/ . (注意,你將需要校閱一下你的網絡配置來決定你在本地網絡中的IP 地址) Unix用戶可以在命令提示符中輸入ifconfig來獲取以上信息。使用Windows的用戶,請嘗試使用 ipconfig命令。

好了,利用Django進行Web開發的系列(一)就完成了,希望大家關注我后續的學習筆記,以便共同學習和討論。

7 參考內容

[1] The Django book

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!