二、開發(fā)環(huán)境和Django安裝
1.開發(fā)環(huán)境
Python3.4.1
Django1.7.1
Bootstrap3.3.0 or Pure? #一種前端框架角寸,寫網(wǎng)頁用的菩混。
Sublime Text 3? #代碼編輯器
virtualenv? 1.11.6? #一個(gè)用來創(chuàng)建獨(dú)立的Python環(huán)境的包
關(guān)于模塊與包:包是為了避免模塊重名而將模塊放入的一個(gè)目錄
https://www.liaoxuefeng.com/wiki/001374
2.Git安裝
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)
Mac下git安裝
$ brew install git #brew 是Mac下軟件包管理工具忿墅,與apt使用相似
Ubuntu下git安裝
$ sudo apt-get install git
3.Github創(chuàng)建
4.Django安裝
安裝最新版的Django版本
#安裝最新版本的Django
$ pip install? django
?#或者指定安裝版本
pip install -v django==1.7.1
?# pip是Python包管理工具,用于下載安裝python包等等
5.Bootstrap安裝
bootstrap已經(jīng)有較為完善的中文文檔, 可以在bootstrap中文網(wǎng)查看
推薦下載其中的Bootstrap源碼
三沮峡、項(xiàng)目和APP
1.項(xiàng)目創(chuàng)建
創(chuàng)建一個(gè)名為my_blog的Django項(xiàng)目
首先需要把django-admin.py添加到我們的環(huán)境變量當(dāng)中去疚脐。django-admin.py 的位置位于/usr/local/lib/python2.7/dist-packages/django/bin 當(dāng)中奠蹬。在命令行中輸入:
sudo vim /etc/environment
在PATH =之后加上':/usr/local/lib/python2.7/dist-packages/django/bin'
之后保存并退出废膘。
#關(guān)于環(huán)境變量:將Django的目錄放入環(huán)境變量扫皱,終端才可以執(zhí)行Django命令
#補(bǔ)充的linux目錄規(guī)劃:
/bin 二進(jìn)制可執(zhí)行命令
/dev 設(shè)備特殊文件
/etc 系統(tǒng)管理和配置文件
/etc/rc.d 啟動(dòng)的配置文件和腳本
/home 用戶主目錄的基點(diǎn)账嚎,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標(biāo)準(zhǔn)程序設(shè)計(jì)庫帅韧,又叫動(dòng)態(tài)鏈接共享庫鸳兽,作用類似windows里的.dll文件
/sbin 系統(tǒng)管理命令待讳,這里存放的是系統(tǒng)管理員使用的管理程序
/tmp 公用的臨時(shí)文件存儲(chǔ)點(diǎn)
/root 系統(tǒng)管理員的主目錄(呵呵颁虐,特權(quán)階級(jí))
/mnt 系統(tǒng)提供這個(gè)目錄是讓用戶臨時(shí)掛載其他的文件系統(tǒng)蛮原。
/lost+found 這個(gè)目錄平時(shí)是空的,系統(tǒng)非正常關(guān)機(jī)而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
/proc 虛擬的目錄另绩,是系統(tǒng)內(nèi)存的映射儒陨。可直接訪問這個(gè)目錄來獲取系統(tǒng)信 息笋籽。
/var 某些大文件的溢出區(qū)蹦漠,比方說各種服務(wù)的日志文件
/usr 最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個(gè)目錄车海。其中包 含:
/usr/X11R6 存放X window的目錄
/usr/bin 眾多的應(yīng)用程序
/usr/sbin 超級(jí)用戶的一些管理程序
/usr/doc linux文檔
/usr/include linux下開發(fā)和編譯應(yīng)用程序所需要的頭文件
/usr/lib 常用的動(dòng)態(tài)鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼笛园,linux內(nèi)核的源代碼就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫
之后創(chuàng)建Django項(xiàng)目,先創(chuàng)建一個(gè)文件夾容劳,在文件夾中輸入如下指令:
$ django-admin.py startproject my_blog
現(xiàn)在來看一下整個(gè)項(xiàng)目的文件結(jié)構(gòu)
$ sudo apt-get install tree$ tree my_blog#打印樹形文件結(jié)構(gòu)
my_blog
├── manage.py
└── my_blog? ??
? ? ? ? ? ? ?├── __init__.py? ??
? ? ? ? ? ? ?├── settings.py? ??
? ? ? ? ? ? ?├── urls.py? ??
? ? ? ? ? ? ?└── wsgi.py1directory,5files
#鏈接為Django官方中文文檔
外層的my_blog根目錄僅僅是項(xiàng)目的一個(gè)容器喘沿。它的命名對(duì)Django無關(guān)緊要闸度;你可以把它重新命名為任何你喜歡的名字竭贩。
內(nèi)層的mysite/目錄是你的項(xiàng)目的真正的Python包。它是你導(dǎo)入任何東西時(shí)將需要使用的Python包的名字(例如mysite.urls)莺禁。
manage.py:一個(gè)命令行工具留量,可以使你用多種方式對(duì)Django項(xiàng)目進(jìn)行交互。
mysite/__init__.py:一個(gè)空文件哟冬,它告訴Python這個(gè)目錄應(yīng)該被看做一個(gè)Python包楼熄。
mysite/settings.py:該Django 項(xiàng)目的設(shè)置/配置。
mysite/urls.py:該Django項(xiàng)目的URL聲明浩峡;你的Django站點(diǎn)的“目錄”可岂。
mysite/wsgi.py:用于你的項(xiàng)目的與WSGI兼容的Web服務(wù)器入口。
2.建立Django app
在Django中的app我認(rèn)為就是一個(gè)功能模塊, 與其他的web框架可能有很大的區(qū)別, 將不能功能放在不同的app中, 方便代碼的復(fù)用
建立一個(gè)article app
$ cd my_blog
$ python manage.py startapp article
現(xiàn)在讓我們重新看一下整個(gè)項(xiàng)目的結(jié)構(gòu)
并在my_blog/my_blog/settings.py下添加新建app
INSTALLED_APPS= (? ? ...'article',#這里填寫的是app的名稱)
django.contrib.admin—— 管理站點(diǎn)。
django.contrib.auth—— 認(rèn)證系統(tǒng)平斩。
django.contrib.contenttypes—— 用于內(nèi)容類型的框架亚享。
django.contrib.sessions—— 會(huì)話框架。
django.contrib.messages—— 消息框架绘面。
django.contrib.staticfiles—— 管理靜態(tài)文件的框架欺税。
3.運(yùn)行程序
$ python manage.py runserver localhost:9000 #啟動(dòng)Django中的開發(fā)服務(wù)器?
#如果運(yùn)行上面命令出現(xiàn)以下提示
You have unapplied migrations; your app maynotwork properlyuntilthey are applied.Run'python manage.py migrate'to apply them
.#請(qǐng)先使用下面命令
python manage.py migrate
上面的部分應(yīng)用至少需要使用一個(gè)數(shù)據(jù)庫表,因此我們需要在使用它們之前先在數(shù)據(jù)庫中創(chuàng)建相應(yīng)的表揭璃。
migrate查看INSTALLED_APPS設(shè)置并根據(jù)mysite/settings.py文件中的數(shù)據(jù)庫設(shè)置創(chuàng)建任何必要的數(shù)據(jù)庫表晚凿,數(shù)據(jù)庫的遷移還會(huì)跟蹤應(yīng)用的變化(我們稍后會(huì)講到)。你會(huì)看到對(duì)每次遷移有一條信息瘦馍。
#輸出如下信息
Operations to perform:?
Apply allmigrations:contenttypes, sessions, admin, auto Running migrations:
Applying contenttypes.0001_initial... OK??
Applying auth.0001_initial... OK??
Applying admin.0001_initial... OK??
Applying sessions.0001_initial... OK
運(yùn)行成功后,會(huì)顯示如下信息
#重新運(yùn)行啟動(dòng)Django中的開發(fā)服務(wù)器$ python manage.py runserverlocalhost:9000#運(yùn)行成功顯示如下信息System check identified no issues (0silenced).December21,2014- 08:56:00Django version1.7.1, using settings'my_blog.settings'Starting development server athttp://localhost:9000/Quit the server with CONTROL-C.
現(xiàn)在可以啟動(dòng)瀏覽器, 輸入http://localhost:9000, 當(dāng)出現(xiàn)
成功
說明你成功走出了第一步!
四晃虫、命令總結(jié)
python manage.py [options] <command> #Django Command?
python manange.py -h幫助文檔
django-admin.py startproject my_blog #創(chuàng)建項(xiàng)目
python manage.py startapp article#創(chuàng)建app
python manage.py runserver localhost:9000 #啟動(dòng)Django中的開發(fā)服務(wù)器