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

1 寫在前面

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

2 什麼是Web開發? 

  在介紹什麼是Web開發以前,先簡單說起一下你們熟悉的WWW。WWW(World Wide Web)簡稱萬維網。通俗地說,WWW是一套技術規範,它裏面包含不少技術和協議,例如html技術、url、http協議等。人們經過這套技術規範,能夠對Internet網絡上主機的資源進行描述,進而能夠經過一個WWW的客戶端訪問這些資源。經常使用的WWW客戶端有IE、Foxfire等瀏覽器。html

  因爲WWW技術的出現,人們能夠在世界上的任何一個角落,經過一個瀏覽器訪問因特網上任何一臺遠程計算機上的資源,或與遠程計算機進行通信。20世紀因爲WWW技術的出現,於是誕生了「地球村」的概念。前端

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

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

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

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

  通俗的說,web開發就是咱們說的作網站。它分爲網頁部分和邏輯部分也就是咱們說的前臺與後臺,前臺負責與用戶的交互,顯示數據。HTML顯示數據,CSS控制樣式,JS編寫複雜交互。後臺編寫處理這些邏輯的程序,能夠用C#,java,php等語言。shell

  如今web應用程序已經和咱們的生活息息相關,小到咱們的博客,空間,大到大型社交網站如facebook、人人等。更復雜的如電子商務中的C2C,B2B等網站,都給咱們帶來了很大的方便。數據庫

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

  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

相關文章
相關標籤/搜索