(一)Django編寫本地范例

簡(jiǎn)單前言一下畢設(shè),計(jì)劃是做創(chuàng)意設(shè)計(jì)和用戶研究相關(guān)的內(nèi)容涡拘,后續(xù)慢慢更出來整篇想法玲躯。為了足夠酷炫,我打算做成一個(gè)綁了域名的webapp鳄乏,若可能后續(xù)的測(cè)試也在上面進(jìn)行跷车。為了練手,我就從簡(jiǎn)單易學(xué)的webframework——django用起橱野,并編寫了它給出的范例程序朽缴。

工具

在進(jìn)入Django官網(wǎng)前,我已經(jīng)有了python2.7的安裝以及eclipse+pydev的開發(fā)環(huán)境仲吏,前端工具有TextWrangler不铆,但后來發(fā)現(xiàn)這些在Django強(qiáng)大的框架面前基本成為了Word一般的排版軟件的作用——嗯就是用來管理和排版各自的代碼蝌焚,除此之外,另外需要用到的工具就是終端(Mac系統(tǒng))誓斥。

安裝

可以踩著Django官網(wǎng)的writing your first app教程來只洒。

因?yàn)橐呀?jīng)安裝了python和pip,直接利用終端$pip install Django就行了劳坑。

然而我直接報(bào)了錯(cuò):

安裝.1

查加猜覺得是訪問某個(gè)文件夾的時(shí)候權(quán)限不夠毕谴,命令前加上sudo,另外按照黃字提示先更新pip到9.0.1版本距芬。

安裝.2

然后居然涝开。。框仔。已經(jīng)安裝了舀武。檢查一下版本沒問題這步就ok了。

創(chuàng)建

發(fā)現(xiàn)不寫東西短短一會(huì)我已經(jīng)忘記怎么開始一個(gè)項(xiàng)目了离斩。再去官網(wǎng)的教程查一下银舱,是

1.進(jìn)入終端,cd到想創(chuàng)建項(xiàng)目的目錄

2.$django-admin startproject mysite

3.就在當(dāng)前目錄創(chuàng)建了一個(gè)名為mysite的文件夾

文件結(jié)構(gòu)


創(chuàng)建.1

引入數(shù)據(jù)庫之后還會(huì)多一個(gè)db文件跛梗,當(dāng)然我只用了默認(rèn)的sqlite3寻馏。

manage.py這個(gè)文件非常有意思,似乎就好像控制臺(tái)一樣核偿,訪問他可以調(diào)用Django框架下項(xiàng)目的各種命令诚欠。

印象深刻的就是在mysite目錄

$python manage.py runserver

再通過本地連接訪問http://127.0.0.1:8000/,就能在網(wǎng)頁中可視化編寫的web項(xiàng)目漾岳。然后一手開著eclipse轰绵,一手開著textwrangler,范例程序的所有更改都能一步一步邊改邊看尼荆。這是因?yàn)镈jango表示他會(huì)自動(dòng)重載頁面藏澳,但是教程說明一些諸如添加文件的操作不自動(dòng)觸發(fā)重載,這樣子我們可能需要重新加載一下這句代碼耀找。

項(xiàng)目中的app

app在項(xiàng)目中可能有多個(gè),app也可以反復(fù)在多個(gè)項(xiàng)目中使用业崖。

創(chuàng)建app野芒,使用的是

$python manage.py startapp app名字

范例是一個(gè)投票程序polls。

app的文件結(jié)構(gòu)

polls/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? __init__.py

? ? admin.py

? ? apps.py

? ? migrations/

? ? __init__.py

? ? models.py

? ? tests.py

? ? views.py

后來還會(huì)有templates和static双炕,存放html和樣式狞悲。

建立地址

通過編寫mysite/urls.py建立項(xiàng)目頁面的地址,polls/urls.py同理


mysite/urls.py


polls/urls.py

可以看出妇斤,polls除了自己的index摇锋,還有detail丹拯,results以及vote三個(gè)子頁面。

建立頁面

編寫polls/views.py荸恕。

polls/views.py部分

如上是之前提到的index乖酬,detail和result三個(gè)頁面的類,Choice和Question是從models文件夾傳遞過來的數(shù)據(jù)對(duì)象融求∫瘢可以看到除了其他對(duì)象,views還需要import相當(dāng)多的其他需要的類生宛。

建立數(shù)據(jù)模型

編寫polls/models.py

polls/models.py

Question有2個(gè)屬性2個(gè)方法县昂,Choice有3個(gè)屬性1個(gè)方法。依賴于Django事先建立的models陷舅,對(duì)特定問題節(jié)省了很多的工作倒彰。

激活app

手動(dòng)打開mysite/setting.py。

在installed_apps = [ ]列表中手動(dòng)加入'polls.apps.PollsConfig', 然后在終端重運(yùn)行migrate命令來引入數(shù)據(jù)庫的相應(yīng)更改莱睁。

$ python manage.py migrate

在這個(gè)過程中還涉及到其他一些函數(shù)

$ python manage.py makemigrations polls ? ? ?//告訴Django你對(duì)數(shù)據(jù)模型做了一些更改并希望存成migration待讳。

$ python manage.py sqlmigrate polls 0001 ? ? //讓Django推測(cè)需要的數(shù)據(jù)庫模塊。

初始化數(shù)據(jù)Question和Choice

這需要打開python的manage.py開發(fā)環(huán)境

$python manage.py shell

然后引入polls.app的類Choice和Question缩赛,來給他們建立一些對(duì)象耙箍。

由于這些類基于Django原來的數(shù)據(jù)模型,他本來就具有很多的方法酥馍,所以創(chuàng)建對(duì)象將會(huì)十分方便辩昆。

創(chuàng)建了對(duì)象,如果之前的幾部分都編寫的順利旨袒,在本地運(yùn)行的網(wǎng)頁中會(huì)馬上看到可交互的內(nèi)容汁针。

admin和tests

admin是Django用來給管理員操作的一個(gè)頁面,也可以像views中的其他頁面對(duì)象一樣進(jìn)行定制砚尽。

tests是python腳本施无,用來debug。范例中的都比較刻意必孤。


最后還有templates用來存放html頁面猾骡,static用來存放css樣式來讓Django自動(dòng)搜索,值得注意的是目錄要寫到polls/style.css敷搪,因?yàn)楹退乃阉鞣绞接嘘P(guān)兴想。


--------------------------------------------->><<--------------------------------------------

第一個(gè)總結(jié)內(nèi)容張的有點(diǎn)開,體驗(yàn)這么一個(gè)范例程序在勞逸結(jié)合狀態(tài)差不多花了3天時(shí)間赡勘,后面還是加速為是嫂便。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市闸与,隨后出現(xiàn)的幾起案子毙替,更是在濱河造成了極大的恐慌岸售,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厂画,死亡現(xiàn)場(chǎng)離奇詭異凸丸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)木羹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門甲雅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坑填,你說我怎么就攤上這事抛人。” “怎么了脐瑰?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵妖枚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我苍在,道長(zhǎng)绝页,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任寂恬,我火速辦了婚禮续誉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘初肉。我一直安慰自己酷鸦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布牙咏。 她就那樣靜靜地躺著臼隔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妄壶。 梳的紋絲不亂的頭發(fā)上摔握,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音丁寄,去河邊找鬼氨淌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伊磺,可吹牛的內(nèi)容都是我干的宁舰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼奢浑,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了腋腮?” 一聲冷哼從身側(cè)響起雀彼,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤壤蚜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后徊哑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袜刷,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年莺丑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了著蟹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梢莽,死狀恐怖萧豆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昏名,我是刑警寧澤涮雷,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站轻局,受9級(jí)特大地震影響洪鸭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仑扑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一览爵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧镇饮,春花似錦蜓竹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邑茄,卻和暖如春姨蝴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肺缕。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工左医, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人同木。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓浮梢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親彤路。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秕硝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容