django2.0入門教程第一節(jié)

什么django

django是用python語言寫的一個(gè)web框架血柳。web框架的作用有以下幾點(diǎn):

  • 減少重復(fù)的繁瑣的工作初橘,web開發(fā)中有很多重復(fù)的沒有技術(shù)含量的工作参歹,web工作可以將這些工作封裝好郎楼,或者自動(dòng)化實(shí)現(xiàn)
  • 提供標(biāo)準(zhǔn)與規(guī)范务甥,便于開發(fā)人員合作。如果不用web框架粒氧,每個(gè)開發(fā)人員的代碼風(fēng)格都不一致越除,增加很大的溝通成本
  • 提供了更加安全健壯的底層架構(gòu),即使是初入門的程序員外盯,只要按照框架的規(guī)范開發(fā)摘盆,也能快速完成一個(gè)不錯(cuò)的成品

以建房子為比喻,如果每個(gè)建筑工都以自己的想法去建饱苟,而且要負(fù)責(zé)所有的流程孩擂,包括打地基,建柱子掷空,壘磚頭等肋殴。這種造出來的房子肯定是又丑又不堅(jiān)固。如果這個(gè)房子的地基已經(jīng)打好了坦弟,基本的架構(gòu)都弄好了护锤,材料也都提供好了,建筑工只需要按照規(guī)范在這個(gè)基礎(chǔ)上加磚頭酿傍,即使是剛出道的小工烙懦,也能勝任。

總之赤炒,框架的作用就是讓我們把事情做得又快又好氯析。

本教程以django2.0為框架亏较,搭建一個(gè)簡(jiǎn)易的投票系統(tǒng),主要參考 django2.0的官方文檔

通過此教程掩缓,將實(shí)現(xiàn)一個(gè)基本的投票應(yīng)用

包括兩個(gè)部分:

  • 前臺(tái):用戶可在前臺(tái)看到所有候選者并進(jìn)行投票

  • 后臺(tái):管理員可在后臺(tái)對(duì)候選者和投票選項(xiàng)進(jìn)行增刪改查

注冊(cè)django2.0

注冊(cè)django2.0, 要求python版本不低于3.4

$ pip install  django

驗(yàn)證django版本有兩種方式:

$ python
Python 3.6.2 (default, Dec  3 2017, 10:41:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print(django.get_version())
2.0
$ python -m django --version
2.0

創(chuàng)建項(xiàng)目

$ django-admin startproject mysite

項(xiàng)目相當(dāng)于django的一個(gè)實(shí)例雪情,包含了所有配置文件以及所有應(yīng)用

項(xiàng)目名稱在命名時(shí)應(yīng)避免使用python內(nèi)置的關(guān)鍵字或者django的模塊組件名。如你辣,不能將項(xiàng)目命名為django巡通,這將會(huì)與Django自身沖突,也不能將項(xiàng)目命名為test舍哄,會(huì)與python內(nèi)置的test模塊沖突

目錄結(jié)構(gòu):

$ cd mysite 
$ tree
.
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

文件名釋義:

  • manage.py 實(shí)用的與django項(xiàng)目進(jìn)行交互的命令行工具
  • mysite 項(xiàng)目中的實(shí)際python包
  • mysite/__init__.py 空文件宴凉,表示這是一個(gè)python包
  • mysite/settings.py 此項(xiàng)目的配置文件
  • mysite/urls.py url聲明文件
  • mysite/wsgi.py wsgi服務(wù)器的配置文件

啟動(dòng)開發(fā)模式下的服務(wù)器

$ python manage.py runserver 0.0.0.0:8000
Performing system checks...

System check identified no issues (0 silenced).

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

December 29, 2017 - 07:14:27
Django version 2.0, using settings 'mysite.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

啟動(dòng)服務(wù)后會(huì)提示你還沒有進(jìn)行數(shù)據(jù)遷移。這點(diǎn)先忽略表悬,后面會(huì)講到

瀏覽器訪問:http://127.0.0.1:8000/

就能看到django的歡迎頁

welcome.png

至此弥锄,我們已經(jīng)啟動(dòng)了python的開發(fā)服務(wù)器,這是一個(gè)純粹用python寫的web服務(wù)器蟆沫,僅用于開發(fā)模式下籽暇。當(dāng)我們修改代碼時(shí),一般情況下這個(gè)開發(fā)服務(wù)器會(huì)自動(dòng)重新加載饥追。但有些行為可能觸發(fā)不到開發(fā)服務(wù)器的自動(dòng)加載图仓,這時(shí)就需要我們手工重新啟動(dòng)

創(chuàng)建投票應(yīng)用

項(xiàng)目與應(yīng)用的區(qū)別:一個(gè)項(xiàng)目中可以包含多個(gè)應(yīng)用,應(yīng)用是指功能性的劃分模塊但绕。如一個(gè)電商網(wǎng)站可以作為一個(gè)項(xiàng)目,其中的日志系統(tǒng)惶看,購(gòu)物車系統(tǒng)都可以分割成獨(dú)立的應(yīng)用

在manage.py的同級(jí)目錄下執(zhí)行:

$ python manage.py startapp polls

應(yīng)用的目錄結(jié)構(gòu):

polls
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

第一個(gè)視圖文件

polls/views.py

#_*_coding:utf8_*_
from django.shortcuts import HttpResponse
def index(request):
    return HttpResponse("你好捏顺,歡迎來到投票系統(tǒng)的主頁")

這是一個(gè)極簡(jiǎn)單的視圖文件,為了讓瀏覽器能訪問到這個(gè)視圖文件纬黎,我們需要配置url映射到這個(gè)文件

配置url

新增polls/urls.py文件

#_*_coding:utf8_*_
from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name='index'),
]

下一步是將polls/urls.py引入到mysite/urls.py文件中, 因?yàn)樗械膗rl配置入口都是源于mysite/urls.py

mysite/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

訪問 http://127.0.0.1:8000/polls/

顯示:

你好幅骄,歡迎來到投票系統(tǒng)的主頁

include()函數(shù)允許django引入其他url配置文件,當(dāng)瀏覽器訪問 http://127.0.0.1:8000/polls/ 時(shí)本今,匹配到url規(guī)則path('polls/', include('polls.urls')), 然后讀到polls/urls.py的配置:path('', views.index, name='index'), 從而去執(zhí)行polls/views.py的index方法

源碼下載

源碼倉(cāng)庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拆座,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冠息,更是在濱河造成了極大的恐慌挪凑,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逛艰,死亡現(xiàn)場(chǎng)離奇詭異躏碳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)散怖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門菇绵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肄渗,“玉大人,你說我怎么就攤上這事咬最◆岬眨” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵永乌,是天一觀的道長(zhǎng)惑申。 經(jīng)常有香客問我,道長(zhǎng)铆遭,這世上最難降的妖魔是什么硝桩? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮枚荣,結(jié)果婚禮上碗脊,老公的妹妹穿的比我還像新娘。我一直安慰自己橄妆,他們只是感情好衙伶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著害碾,像睡著了一般矢劲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慌随,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天芬沉,我揣著相機(jī)與錄音,去河邊找鬼阁猜。 笑死丸逸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的剃袍。 我是一名探鬼主播黄刚,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼民效!你這毒婦竟也來了憔维?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤畏邢,失蹤者是張志新(化名)和其女友劉穎业扒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棵红,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凶赁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虱肄。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡致板,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咏窿,到底是詐尸還是另有隱情斟或,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布集嵌,位于F島的核電站萝挤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏根欧。R本人自食惡果不足惜怜珍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凤粗。 院中可真熱鬧酥泛,春花似錦、人聲如沸嫌拣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽异逐。三九已至捶索,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灰瞻,已是汗流浹背腥例。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酝润,地道東北人院崇。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像袍祖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谢揪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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