Django模塊的部署
在Django中,與工程全局相關(guān)的設(shè)置都需要在配置文件settings.py中添加。筆者使用MySQL作為后臺數(shù)據(jù)庫,并且已經(jīng)在MySQL中創(chuàng)建名為django_news的數(shù)據(jù)庫。則需要在settings.py文件中的相應(yīng)位置設(shè)定DATABASE_ENGINE = "mysql" 以及 DATABASE_NAME = "django_news"。
這里要注意的是,如果使用SQLite數(shù)據(jù)庫,Django可以根據(jù)數(shù)據(jù)庫的名稱自動在SQLite中創(chuàng)建新的數(shù)據(jù)庫,而在MySQL、PostgreSQL或其他的數(shù)據(jù)庫中,則需要先創(chuàng)建與設(shè)定名稱對應(yīng)的數(shù)據(jù)庫。在使用MySQL數(shù)據(jù)庫時,需要額外安裝MySQL的Python鏈接庫MySQLdb-1.2.1,這個模塊可以在站點http://sourceforge.net/projects/mysql-python/下載,目前支持的Python版本為2.4,所以使用MySQL數(shù)據(jù)庫需要在2.4版本的Python環(huán)境來開發(fā)運行。
接下來的DATABASE_USER和DATABASE_PASSWORD兩項內(nèi)容則需要用戶根據(jù)本機(jī)設(shè)置填寫訪問數(shù)據(jù)庫的用戶名和密碼。如果數(shù)據(jù)庫安裝在其他機(jī)器上或者更改了數(shù)據(jù)庫的監(jiān)聽端口,則還需要設(shè)置DATABASE_HOST地址和DATABASE_PORT項。筆者使用的Mysql數(shù)據(jù)庫設(shè)置為:
- DATABASE_USER = 'django'
- DATABASE_PASSWORD = 'django_password'
為了使Django識別開發(fā)者添加的應(yīng)用模塊,在settings.py文件的INSTALLED_APPS部分中,需要定義Django工程加載的應(yīng)用列表。默認(rèn)情況下,列表中已經(jīng)添加了Django工程運行所需的部分自帶模塊,我們還需要把剛才編寫好的應(yīng)用模塊news.article加入其中,同時添加Django自帶的django.contrib.admin應(yīng)用模塊,修改好的代碼如下所示:
添加所需的模塊
- INSTALLED_APPS = (
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.sites',
- 'django.contrib.admin',
- 'news.article',
- )
添加admin模塊后還不能立即使用Django的admin后臺管理界面,需要打開News工程根目錄下的urls.py文件,將“# Uncomment this for admin:”后面的#注釋去掉,使得Django針對管理界面的URL轉(zhuǎn)向“(r'^admin/', include('django.contrib.admin.urls')),”可用,這樣訪問admin模塊時Django就可以順利解析訪問地址并轉(zhuǎn)向后臺管理界面。
當(dāng)配置文件的改動完成之后,就可以在News工程的命令提示符下執(zhí)行manage.py syncdb指令。Django會根據(jù)模型的定義自動完成ORM的數(shù)據(jù)庫映射工作,屏蔽了底層數(shù)據(jù)庫細(xì)節(jié)和SQL查詢的編寫。
展示Django魅力的時刻已經(jīng)來臨,Django框架將讓開發(fā)者開始神奇的體驗。隨著命令執(zhí)行后的滾動提示,Django已經(jīng)根據(jù)我們剛才在models里定義的映射文件,自動在數(shù)據(jù)庫里創(chuàng)建好對應(yīng)的表和字段。命令執(zhí)行的同時會提示用戶創(chuàng)建“superuser"賬戶,來登陸Django自動創(chuàng)建好的后臺管理界面對模型進(jìn)行管理。指令執(zhí)行時同步更新數(shù)據(jù)庫表的命令提示如圖2所示:
Django指令執(zhí)行時同步更新數(shù)據(jù)庫表
維持學(xué)習(xí)動力的***方式就是隨時都可以找到一點小小的成就感,下面來看一下這些步驟完成了哪些工作。再次使用命令manage.py runserver來啟動Django自帶的Web服務(wù)器后,在瀏覽器中訪問地址http://127.0.0.1:8000/admin/,使用剛才創(chuàng)建的superuser用戶的賬號和密碼登陸,如圖3所示漂亮的Django后臺管理界面就出現(xiàn)在眼前。
Django根據(jù)模型自動生成的后臺管理界面
在admin管理界面中,顯示了應(yīng)用中已經(jīng)定義的各個models模塊,當(dāng)點擊查看時,則會顯示models中存在的數(shù)據(jù)庫對象列表。Django提供的后臺管理界面方便用戶直接更改或添加數(shù)據(jù)庫字段,下面我們點擊"Lists"項旁邊的“Add”來添加新的新聞分類。在title字段中鍵入“Sports News”或其他你喜歡的分類后保存。然后在"Items"項中點擊“Add”,填入新聞的***個條目,每個Item條目都對應(yīng)List中的一個分類項,添加Item的界面如圖4所示,由于設(shè)置了表之間的關(guān)聯(lián),Django的Item管理界面中會為已添加List分類自動生成內(nèi)容的下拉選項。
添加新聞條目的界面
Django便捷的后臺管理界面為Web開發(fā)人員節(jié)省了大量的時間,目前使用到的只是Django默認(rèn)的后臺管理方式。欲更多的了解Django的模塊部署,開發(fā)者還可以參考Django提供的用戶手冊對后臺進(jìn)行進(jìn)一步的定制和個性化。
【編輯推薦】