Django實例(投票系統) -- 創建

這是官方文檔上給的例子,按照這個例子一步一步走,可以對Django框架和操作有一個整體的認識。

創建一個基本的投票系統,包括兩部分的開發:

  • 1.客戶訪問部分
  • 2.后臺管理部分
首先,創建工程,利用Django的命令:
$ django-admin startproject mysite
項目目錄

創建完成后,可以看到以上目錄。其中,

  • manage.py -- 這是一個命令行工具,具體有哪些命令,可以根據-help參數參看。
  • mysite -- 這是項目的根目錄,有關項目的一些重要文件都放在這個文件下。
  • settings.py -- 配置文件,項目相關配置都在這個文件中進行配置,比如說數據庫,應用,模板等配置。
  • urls.py -- URL映射文件,它將URL與后臺的視圖函數進行映射。
  • wsgi.py -- 用于與WSGI兼容的web服務器的接入。
創建app(應用)
$ python manage.py startapp polls
app目錄

其中,

  • models.py -- 用于創建數據對象模型,用于生成對應的數據庫表。
  • views.py -- 視圖文件,用于寫視圖函數,即處理函數。
  • urls.py -- 映射文件,用于URL與views.py文件中的視圖函數映射。
  • admin.py -- 管理文件,該文件用于后臺管理,可以將models.py中創建的數據對象模型注冊到admin.py文件中,使其能夠被后臺管理員管理。
  • apps.py -- 應用文件,用于應用在項目中的配置。
  • tests.py -- 測試文件,用于測試應用。
  • migrateions -- 遷移目錄,保存每次修改過models.py后的數據庫遷移策略,在更新數據庫時會用到。
  • static -- 靜態文件夾,用于保存靜態文件。
  • templates -- 模板文件夾,用于保存一些模板。

注意,新建完app后并沒有這么多文件和目錄,有些目錄是后來自己創建的,比如static,templates這兩個目錄,還有urls.py這個文件都是后來自己創建的。

編寫最簡單版本

首先,編寫一個視圖函數,打開polls/views.py這個文件,并編寫以下代碼:

from django.http import HttpResponse

def index(request):
  return HttpResponse("Hello, world. You're at the polls index.")

這可能是最簡單的視圖函數。為了能看到調用該視圖函數,需要為它做一個URL映射。
在polls目錄下創建urls.py文件(上面介紹過,在創建應用時,Django沒有給我們自動生成,這里我們自己手動創建),打開該文件并編寫以下代碼:

from django.conf.urls import url
from . import views

urlpatterns = [
  url(r'^$', views.index, name='index'),
]

上面我們創建的urls.py映射文件是針對polls這個應用創建的,如果想要是它生效,需要將它配置到項目的urls.py文件中,打開mysite/urls.py文件并添加include()如下:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
  url(r'^polls/', include('polls.urls')),
  url(r'^admin/', admin.site.urls),
]

include()這個方法是將polls/urls.py中的映射關聯到url ‘/polls/’之后。參數‘polls.urls’代表的是polls目錄下的urls.py文件。
注意,與include()方法相關聯的url之后不能有‘$’存在,因為在正則表達式中'$'代表結束符,而include()方法表示后面需要連接另一部分url。

然后,將應用配置到項目中去。打開mysite/settings.py文件,找到INSTALLED_APPS的位置,添加如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls.apps.PollsConfig',
]

至此,可以運行服務器看結果。

$ python manage.py runserver

默認端口是8000.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,732評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,214評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,781評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,588評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,315評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,699評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,698評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,882評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,441評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,189評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,388評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,933評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,613評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,023評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,310評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,112評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,334評論 2 377

推薦閱讀更多精彩內容