[Python] 利用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應用程序已經和我們的生活息息相關,小到我們的博客,空間,大到大型社交網站如facebook、人人等。更復雜的如電子商務中的C2C,B2B等網站,都給我們帶來了很大的方便。

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

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

  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 代碼。 數據庫管理員可以重新命名數據表並且只需更改一個地方,無需從一大堆文件中進行查找和替換。

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 服務器對於開發很方便,但是,千萬不要在正式的應用布署環境中使用它。 在同一時間,該服務器只能可靠地處理一次單個請求,並且沒有進行任何類型的安全審計。

  更改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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM