知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >
[Python] 利用Django進(jìn)行Web開(kāi)發(fā)系列(一)
發(fā)表時(shí)間:2017-3-5
發(fā)布人:葵宇科技
瀏覽次數(shù):51
轉(zhuǎn)自 點(diǎn)擊打開(kāi)鏈接
閱讀目錄
- 1 寫(xiě)在前面
- 2 什么是Web開(kāi)發(fā)?
- 3 什么是Django?
- 4 MVC框架介紹
- 5 Python Django的安裝
- 6 運(yùn)行開(kāi)發(fā)服務(wù)器
- 7 參考內(nèi)容
1 寫(xiě)在前面
在沒(méi)有接觸互聯(lián)網(wǎng)這個(gè)行業(yè)的時(shí)候,我就一直很好奇網(wǎng)站是怎么構(gòu)建的?,F(xiàn)在雖然從事互聯(lián)網(wǎng)相關(guān)的工作,但是也一直沒(méi)有接觸過(guò)Web開(kāi)發(fā)之類(lèi)的東西,但是興趣終歸還是要有的,而且是需要自己動(dòng)手去實(shí)踐的。Web開(kāi)發(fā)的途徑有好多種,比如傳統(tǒng)的.Net,還有很火爆的Java。Python作為一種靈活好學(xué)的腳本語(yǔ)言,已經(jīng)越來(lái)越受程序員的歡迎和熱捧,甚至成為程序員的必備技能。Django是Python的Web開(kāi)放框架,好多人說(shuō)學(xué)習(xí)Python就是在學(xué)Django,從這也可以看出Django的強(qiáng)大。博主也是剛剛接觸Django,純屬個(gè)人興趣愛(ài)好,望與廣大博友共同學(xué)習(xí)和討論。
回到頂部2 什么是Web開(kāi)發(fā)?
在介紹什么是Web開(kāi)發(fā)之前,先簡(jiǎn)單提及一下大家熟悉的WWW。WWW(World Wide Web)簡(jiǎn)稱(chēng)萬(wàn)維網(wǎng)。通俗地說(shuō),WWW是一套技術(shù)規(guī)范,它里面包含很多技術(shù)和協(xié)議,例如html技術(shù)、url、http協(xié)議等。人們通過(guò)這套技術(shù)規(guī)范,可以對(duì)Internet網(wǎng)絡(luò)上主機(jī)的資源進(jìn)行描述,進(jìn)而可以通過(guò)一個(gè)WWW的客戶(hù)端訪問(wèn)這些資源。常用的WWW客戶(hù)端有IE、Foxfire等瀏覽器。
由于WWW技術(shù)的出現(xiàn),人們可以在世界上的任何一個(gè)角落,通過(guò)一個(gè)瀏覽器訪問(wèn)因特網(wǎng)上任何一臺(tái)遠(yuǎn)程計(jì)算機(jī)上的資源,或與遠(yuǎn)程計(jì)算機(jī)進(jìn)行通訊。20世紀(jì)由于WWW技術(shù)的出現(xiàn),因而誕生了“地球村”的概念。
而Web就是用來(lái)表示Internet主機(jī)上供外界訪問(wèn)的資源的。在英語(yǔ)中web即表示網(wǎng)頁(yè)的意思,網(wǎng)頁(yè)也統(tǒng)稱(chēng)為web資源。Internet上供外界訪問(wèn)的Web資源主要分為如下兩類(lèi):
靜態(tài)web資源:指web頁(yè)面中供人們?yōu)g覽的數(shù)據(jù)始終是不變的,例如,html頁(yè)面;
動(dòng)態(tài)web資源:指web頁(yè)面中供人們?yōu)g覽的數(shù)據(jù)是由程序產(chǎn)生的,不同時(shí)間點(diǎn)訪問(wèn)web頁(yè)面看到的內(nèi)容各不相同。
微軟對(duì)Web開(kāi)發(fā)的定義:Web開(kāi)發(fā)是一個(gè)指代網(wǎng)頁(yè)或網(wǎng)站編寫(xiě)過(guò)程的廣義術(shù)語(yǔ)。這些頁(yè)面可能是類(lèi)似于文檔的簡(jiǎn)單文本和圖形。頁(yè)面也可以是交互式的,或顯示變化的信息。編寫(xiě)交互式服務(wù)器頁(yè)面略微復(fù)雜一些,但卻可以實(shí)現(xiàn)更豐富的網(wǎng)站。如今的大多數(shù)頁(yè)面都是交互式的,并提供了購(gòu)物車(chē)、動(dòng)態(tài)可視化甚至復(fù)雜的社交網(wǎng)絡(luò)等現(xiàn)代在線服務(wù)。
通俗的說(shuō),web開(kāi)發(fā)就是我們說(shuō)的做網(wǎng)站。它分為網(wǎng)頁(yè)部分和邏輯部分也就是我們說(shuō)的前臺(tái)與后臺(tái),前臺(tái)負(fù)責(zé)與用戶(hù)的交互,顯示數(shù)據(jù)。用到HTML顯示數(shù)據(jù),CSS控制樣式,JS編寫(xiě)復(fù)雜交互。后臺(tái)編寫(xiě)處理這些邏輯的程序,可以用C#,java,php等語(yǔ)言。
現(xiàn)在web應(yīng)用程序已經(jīng)和我們的生活息息相關(guān),小到我們的博客,空間,大到大型社交網(wǎng)站如facebook、人人等。更復(fù)雜的如電子商務(wù)中的C2C,B2B等網(wǎng)站,都給我們帶來(lái)了很大的方便。
那么Web開(kāi)發(fā)與CS開(kāi)發(fā)有什么區(qū)別呢?
C/S結(jié)構(gòu),即Client/Server(客戶(hù)機(jī)/服務(wù)器)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開(kāi)銷(xiāo),可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì)。
B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶(hù)界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier(三層架構(gòu))結(jié)構(gòu)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來(lái)需要復(fù)雜專(zhuān)用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù),這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。
首先必須強(qiáng)調(diào)的是C/S和B/S并沒(méi)有本質(zhì)的區(qū)別:B/S是基于特定通信協(xié)議(HTTP)的C/S架構(gòu),也就是說(shuō)B/S包含在C/S中,是特殊的C/S架構(gòu)。
從根本上說(shuō),CS開(kāi)發(fā)更適合開(kāi)發(fā)單機(jī)的應(yīng)用程序,或者比較固定業(yè)務(wù)邏輯,而且對(duì)硬件要求較高的程序。比如:一些應(yīng)用軟件,如殺毒軟件,教學(xué)軟件這些與服務(wù)器邏輯交互較少,而且程序與客戶(hù)端硬件有密切聯(lián)系的程序。
而BS開(kāi)發(fā)趨向于電子商務(wù)、社交網(wǎng)絡(luò)等這些需要服務(wù)端密切配合的軟件。他由于客戶(hù)端只有一個(gè)瀏覽器,開(kāi)發(fā)方便,用戶(hù)體驗(yàn)簡(jiǎn)潔,但是會(huì)受到網(wǎng)絡(luò)通信的限制,必須考慮服務(wù)器性能。
回到頂部3 什么是Django?
借用djangobook中的一段話介紹來(lái)解釋一下Django到底是什么。“Django是一個(gè)可以使Web開(kāi)發(fā)工作愉快并且高效的Web開(kāi)發(fā)框架。使用Django,使你能夠以最小的代價(jià)構(gòu)建和維護(hù)高質(zhì)量的Web應(yīng)用?!?/span>
從好的方面來(lái)看,Web 開(kāi)發(fā)激動(dòng)人心且富于創(chuàng)造性;從另一面來(lái)看,它卻是份繁瑣而令人生厭的工作。 通過(guò)減少重復(fù)的代碼,Django 使你能夠?qū)W⒂?Web 應(yīng)用上有 趣的關(guān)鍵性的東西。 為了達(dá)到這個(gè)目標(biāo),Django 提供了通用Web開(kāi)發(fā)模式的高度抽象,提供了頻繁進(jìn)行的編程作業(yè)的快速解決方法,以及為“如何解決問(wèn)題”提供了清晰明了的約定。 同時(shí),Django 嘗試留下一些方法,來(lái)讓使用者根據(jù)需要在framework之外來(lái)開(kāi)發(fā)。
回到頂部4 MVC框架介紹
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫(xiě),一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶(hù)交互的同時(shí),不需要重新編寫(xiě)業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶(hù)界面的結(jié)構(gòu)中。
簡(jiǎn)單的說(shuō), MVC 是一種軟件開(kāi)發(fā)的方法,它把代碼的定義和數(shù)據(jù)訪問(wèn)的方法(模型)與請(qǐng)求邏輯 (控制器)還有用戶(hù)接口(視圖)分開(kāi)來(lái)。 這種設(shè)計(jì)模式關(guān)鍵的優(yōu)勢(shì)在于各種組件都是 松散結(jié)合 的。這樣,每個(gè)由 Django驅(qū)動(dòng) 的Web應(yīng)用都有著明確的目的,并且可獨(dú)立更改而不影響到其它的部分。 比如,開(kāi)發(fā)者 更改一個(gè)應(yīng)用程序中的 URL 而不用影響到這個(gè)程序底層的實(shí)現(xiàn)。 設(shè)計(jì)師可以改變 HTML 頁(yè)面 的樣式而不用接觸 Python 代碼。 數(shù)據(jù)庫(kù)管理員可以重新命名數(shù)據(jù)表并且只需更改一個(gè)地方,無(wú)需從一大堆文件中進(jìn)行查找和替換。
5 Python Django的安裝
首先,在Django官網(wǎng)上下載適合自己Python的Django版本,現(xiàn)在官方發(fā)布的最新版本是Django1.8.2。在安裝Django前首先確定你已成功安裝了python。
Windows系統(tǒng)下安裝Django:
解壓縮下載的Django壓縮包,找到里面的setup.py文件,然后打開(kāi)cmd命令窗口,在其對(duì)應(yīng)的路徑下執(zhí)行如下命令:
python setup.py install
Linux系統(tǒng)下安裝Django:
以此在shell中輸入如下命令:
$ tar xzvf Django-*.tar.gz $ cd Django-* $ sudo python setup.py install
確認(rèn)Django是否成功安裝:
在python IDE下輸入:
import django django.VERSION
如果你看到如下結(jié)果,就說(shuō)明你的Django已經(jīng)成功安裝了:
(1, 8, 2, 'final', 0)回到頂部
6 運(yùn)行開(kāi)發(fā)服務(wù)器
一但你安裝好了python,django和(可選的)數(shù)據(jù)庫(kù)及相關(guān)庫(kù),你就可以通過(guò)創(chuàng)建一個(gè)project,邁出開(kāi)發(fā)django應(yīng)用的第一步。
首先,開(kāi)始新建第一個(gè)項(xiàng)目。
找到你的django-admin.py文件,并把它加入系統(tǒng)路徑。如果用的是setup.py工具安裝的Django,django-admin.py應(yīng)該已被加入了系統(tǒng)路徑中。樓主的django-admin.py目錄為C:\Python27\Lib\site-packages\Django-1.8.2-py2.7.egg\django\bin。
進(jìn)入該目錄下,運(yùn)行如下命令,新建一個(gè)項(xiàng)目:
python django-admin.py startproject mysite
startproject命令創(chuàng)建一個(gè)目錄,包含一個(gè)名為mysite的文件夾和一個(gè)名為manage.py的文件。其中mysite文件夾下包含有四個(gè)文件,分別為:
__init__.py
settings.py
urls.py
wsgi.py
為了安裝后更多的體驗(yàn),讓我們運(yùn)行一下django開(kāi)發(fā)服務(wù)器看看我們的準(zhǔn)系統(tǒng)。django開(kāi)發(fā)服務(wù)是可用在開(kāi)發(fā)期間的,一個(gè)內(nèi)建的,輕量的web服務(wù)。 我們提供這個(gè)服務(wù)器是為了讓你快速開(kāi)發(fā)站點(diǎn),也就是說(shuō)在準(zhǔn)備發(fā)布產(chǎn)品之前,無(wú)需進(jìn)行產(chǎn)品級(jí) Web 服務(wù)器(比如 Apache)的配置工作。 開(kāi)發(fā)服務(wù)器監(jiān)測(cè)你的代碼并自動(dòng)加載它,這樣你會(huì)很容易修改代碼而不用重啟動(dòng)服務(wù)。如果你還沒(méi)啟動(dòng)服務(wù)器的話,請(qǐng)切換到你的項(xiàng)目目錄里 (cd mysite),運(yùn)行下面的命令:
python manage.py runserver
你會(huì)看到如下內(nèi)容:
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
這將會(huì)在端口8000啟動(dòng)一個(gè)本地服務(wù)器, 并且只能從你的這臺(tái)電腦連接和訪問(wèn)。 既然服務(wù)器已經(jīng)運(yùn)行起來(lái)了,現(xiàn)在用網(wǎng)頁(yè)瀏覽器訪問(wèn) http://127.0.0.1:8000/ 。 你應(yīng)該可以看到一個(gè)令人賞心悅目的淡藍(lán)色Django歡迎頁(yè)面。 它開(kāi)始工作了。
界面如下所示:
注意:雖然 django 自帶的這個(gè) web 服務(wù)器對(duì)于開(kāi)發(fā)很方便,但是,千萬(wàn)不要在正式的應(yīng)用布署環(huán)境中使用它。 在同一時(shí)間,該服務(wù)器只能可靠地處理一次單個(gè)請(qǐng)求,并且沒(méi)有進(jìn)行任何類(lèi)型的安全審計(jì)。
更改Development Server 的主機(jī)地址或端口。默認(rèn)情況下,runserver命令在8000端口啟動(dòng)開(kāi)發(fā)服務(wù)器,且僅監(jiān)聽(tīng)本地連接。 要想要更改服務(wù)器端口的話,可將端口作為命令行參數(shù)傳入:
python manage.py runserver 8080
通過(guò)指定一個(gè) IP 地址,你可以告訴服務(wù)器–允許非本地連接訪問(wèn)。 如果你想和其他開(kāi)發(fā)人員共享同一開(kāi)發(fā)站點(diǎn)的話,該功能特別有用?!?.0.0.0”這個(gè)IP地址,告訴服務(wù)器去偵聽(tīng)任意的網(wǎng)絡(luò)接口。
python manage.py runserver 0.0.0.0:8000
完成這些設(shè)置后,你本地網(wǎng)絡(luò)中的其它計(jì)算機(jī)就可以在瀏覽器中訪問(wèn)你的 IP 地址了。比如:http://192.168.1.103:8000/ . (注意,你將需要校閱一下你的網(wǎng)絡(luò)配置來(lái)決定你在本地網(wǎng)絡(luò)中的IP 地址) Unix用戶(hù)可以在命令提示符中輸入ifconfig來(lái)獲取以上信息。使用Windows的用戶(hù),請(qǐng)嘗試使用 ipconfig命令。
好了,利用Django進(jìn)行Web開(kāi)發(fā)的系列(一)就完成了,希望大家關(guān)注我后續(xù)的學(xué)習(xí)筆記,以便共同學(xué)習(xí)和討論。
回到頂部7 參考內(nèi)容
[1] The Django book
相關(guān)案例查看更多
相關(guān)閱讀
- 汽車(chē)報(bào)廢回收軟件
- 云南網(wǎng)站建設(shè)
- 快排推廣
- 云南小程序開(kāi)發(fā)費(fèi)用
- 云南網(wǎng)站建設(shè)費(fèi)用
- 報(bào)廢車(chē)拆解系統(tǒng)
- 汽車(chē)拆解系統(tǒng)
- 百度小程序開(kāi)發(fā)
- 百度小程序開(kāi)發(fā)公司
- 云南軟件定制公司
- 正規(guī)網(wǎng)站建設(shè)公司
- 生成海報(bào)
- 云南百度小程序
- 云南小程序開(kāi)發(fā)
- 小程序用戶(hù)登錄
- 小程序
- 報(bào)廢車(chē)回收管理系統(tǒng)
- 重慶網(wǎng)站建設(shè)公司
- 北京小程序開(kāi)發(fā)
- 大理網(wǎng)站建設(shè)公司
- 云南小程序被騙
- 網(wǎng)站建設(shè)招商
- 楚雄小程序開(kāi)發(fā)
- 網(wǎng)站建設(shè)服務(wù)
- 云南建設(shè)廳網(wǎng)站首頁(yè)
- 云南小程序哪家好
- 云南網(wǎng)站建設(shè)高手
- 跳轉(zhuǎn)小程序
- 云南小程序開(kāi)發(fā)推薦
- 開(kāi)通微信小程序被騙