django - MTV

MTV模型

Django的MTV分別代表:

  • Model(模型):負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的對(duì)象(ORM)
  • Template(模版):負(fù)責(zé)如何把頁(yè)面展示給用戶
  • View(視圖):負(fù)責(zé)業(yè)務(wù)邏輯,并在適當(dāng)?shù)臅r(shí)候調(diào)用Model和Template

此外竭业,Django還有一個(gè)urls分發(fā)器牡肉,它的作用是將一個(gè)個(gè)URL的頁(yè)面請(qǐng)求分發(fā)給不同的view處理仰税,view再調(diào)用相應(yīng)的Model和Template预鬓。

image.png

django基本命令

下載Django:
  pip install django

創(chuàng)建一個(gè)django項(xiàng)目:
  django-admin.py startproject 項(xiàng)目名

創(chuàng)建應(yīng)用:
  python manage.py startapp 應(yīng)用名

啟動(dòng)項(xiàng)目:
  python manage.py runserver 8080

同步更改數(shù)據(jù)庫(kù)表或字段
  python manage.py syncdb
  注意:Django 1.7.1 及以上的版本需要用以下命令
    python manage.py makemigrations
    python manage.py migrate

清空數(shù)據(jù)庫(kù)
  python manage.py flush

創(chuàng)建超級(jí)管理員
  python manage.py createsuperuser
  # 按照提示輸入用戶名和對(duì)應(yīng)的密碼就好了郵箱可以留空昂勒,用戶名和密碼必填

修改 用戶密碼可以用:
  python manage.py changepassword username

Django 項(xiàng)目環(huán)境終端
  python manage.py dbshell
  Django 會(huì)自動(dòng)進(jìn)入在settings.py中設(shè)置的數(shù)據(jù)庫(kù)勇哗,如果是 MySQL 或 postgreSQL,會(huì)要求輸入數(shù)據(jù)庫(kù)用戶密碼杠茬。
  在這個(gè)終端可以執(zhí)行數(shù)據(jù)庫(kù)的SQL語(yǔ)句琳拨。如果您對(duì)SQL比較熟悉瞭恰,可能喜歡這種方式。

更多命令
  python manage.py
  查看所有的命令狱庇,忘記子名稱的時(shí)候特別有用惊畏。

靜態(tài)文件配置

概述:

靜態(tài)文件交由Web服務(wù)器處理恶耽,Django本身不處理靜態(tài)文件。簡(jiǎn)單的處理邏輯如下(以nginx為例):
URI請(qǐng)求-----> 按照Web服務(wù)器里面的配置規(guī)則先處理颜启,以nginx為例偷俭,主要求配置在nginx.
                             conf里的location

                         |---------->如果是靜態(tài)文件,則由nginx直接處理

                         |---------->如果不是則交由Django處理缰盏,Django根據(jù)urls.py里面的規(guī)則進(jìn)行匹配

    以上是部署到Web服務(wù)器后的處理方式涌萤,為了便于開(kāi)發(fā),Django提供了在開(kāi)發(fā)環(huán)境的對(duì)靜態(tài)文件的處理機(jī)制口猜,方法是這樣:

static配置:

STATIC主要指的是如css,js,images這樣文件:

STATIC_URL = '/static/'      # 別名
STATICFILES_DIRS = (
            os.path.join(BASE_DIR,"static"),  #實(shí)際名 ,即實(shí)際文件夾的名字
        )

'''

注意點(diǎn)1:
 django對(duì)引用名和實(shí)際名進(jìn)行映射,引用時(shí),只能按照引用名來(lái),不能按實(shí)際名去找
        <script src="/statics/jquery-3.1.1.js"></script>
        ------error-----不能直接用负溪,必須用STATIC_URL = '/static/':
        <script src="/static/jquery-3.1.1.js"></script>

注意點(diǎn)2:
 STATICFILES_DIRS = (
    ("app01",os.path.join(BASE_DIR, "app01/statics")),
        )

 <script src="/static/app01/jquery.js"></script>

'''

media配置:

# in settings:

MEDIA_URL="/media/"
MEDIA_ROOT=os.path.join(BASE_DIR,"app01","media","upload")

# in urls:
from django.views.static import serve
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
        '''
        靜態(tài)文件的處理又包括STATIC和MEDIA兩類,這往往容易混淆济炎,在Django里面是這樣定義的:
        
        MEDIA:指用戶上傳的文件川抡,比如在Model里面的FileFIeld,ImageField上傳的文件须尚。如果你定義
        
        MEDIA_ROOT=c:\temp\media崖堤,那么File=models.FileField(upload_to="abc/")#,上傳的文件就會(huì)被保存到c:\temp\media\abc

        eg:
            class blog(models.Model):
                   Title=models.charField(max_length=64)
                   Photo=models.ImageField(upload_to="photo")
          上傳的圖片就上傳到c:\temp\media\photo耐床,而在模板中要顯示該文件密幔,則在這樣寫
          在settings里面設(shè)置的MEDIA_ROOT必須是本地路徑的絕對(duì)路徑,一般是這樣寫:
                 BASE_DIR= os.path.abspath(os.path.dirname(__file__))
                 MEDIA_ROOT=os.path.join(BASE_DIR,'media/').replace('\\','/')

        MEDIA_URL是指從瀏覽器訪問(wèn)時(shí)的地址前綴撩轰,舉個(gè)例子:
            MEDIA_ROOT=c:\temp\media\photo
            MEDIA_URL="/data/"
        在開(kāi)發(fā)階段,media的處理由django處理:

           訪問(wèn)http://localhost/data/abc/a.png就是訪問(wèn)c:\temp\media\photo\abc\a.png

           在模板里面這樣寫![](/media/abc/a.png)

           在部署階段最大的不同在于你必須讓web服務(wù)器來(lái)處理media文件老玛,因此你必須在web服務(wù)器中配置,
           以便能讓web服務(wù)器能訪問(wèn)media文件
           以nginx為例钧敞,可以在nginx.conf里面這樣:

                 location ~/media/{
                       root/temp/
                       break;
                    }

           具體可以參考如何在nginx部署django的資料蜡豹。
           
           
           '''
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市溉苛,隨后出現(xiàn)的幾起案子镜廉,更是在濱河造成了極大的恐慌,老刑警劉巖愚战,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娇唯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡寂玲,警方通過(guò)查閱死者的電腦和手機(jī)塔插,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拓哟,“玉大人想许,你說(shuō)我怎么就攤上這事。” “怎么了流纹?”我有些...
    開(kāi)封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵糜烹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我漱凝,道長(zhǎng)疮蹦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任茸炒,我火速辦了婚禮愕乎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壁公。我一直安慰自己妆毕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布贮尖。 她就那樣靜靜地躺著笛粘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪湿硝。 梳的紋絲不亂的頭發(fā)上薪前,一...
    開(kāi)封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音关斜,去河邊找鬼示括。 笑死,一個(gè)胖子當(dāng)著我的面吹牛痢畜,可吹牛的內(nèi)容都是我干的垛膝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼丁稀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吼拥!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起线衫,我...
    開(kāi)封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凿可,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后授账,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體枯跑,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年白热,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敛助。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屋确,死狀恐怖纳击,靈堂內(nèi)的尸體忽然破棺而出续扔,到底是詐尸還是另有隱情,我是刑警寧澤评疗,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站茵烈,受9級(jí)特大地震影響百匆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呜投,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一加匈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仑荐,春花似錦雕拼、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至洒扎,卻和暖如春辑甜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袍冷。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工磷醋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胡诗。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓邓线,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親煌恢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子骇陈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • MTV模型 Django的MTV分別代表: Model(模型):負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的對(duì)象(ORM) Templa...
    lkning閱讀 806評(píng)論 0 0
  • 從著名的MVC模式說(shuō)起 所謂MVC就是把Web應(yīng)用分為模型(M),控制器(C)和視圖(V)三層瑰抵,他們之間以一種插件...
    Spareribs閱讀 1,100評(píng)論 0 5
  • epub格式下載 感謝@Cluas 鏈接: https://pan.baidu.com/s/1kVGavLd 密碼...
    夜夜月閱讀 57,449評(píng)論 105 379
  • django中MTV模式即MVC模式 M:負(fù)責(zé)業(yè)務(wù)對(duì)象和數(shù)據(jù)庫(kù)的關(guān)系映射(ORM)T:負(fù)責(zé)如何把頁(yè)面展示給用戶(h...
    ImFx閱讀 296評(píng)論 0 0
  • Model 提供數(shù)據(jù)訪問(wèn)接口和模塊,包括數(shù)據(jù)字段,元數(shù)據(jù),數(shù)據(jù)關(guān)系等的定義及操作. Templates 是一套Dj...
    Co_zy閱讀 579評(píng)論 0 0