django基礎(chǔ)

1.定義

可執(zhí)行的二進(jìn)制指令的集合赁酝。用于執(zhí)行一定功能的計(jì)算機(jī)程序队塘。

2.作用:

  解決實(shí)際生活中的問題

3.核心:

數(shù)據(jù)處理

4.處理方式:

增刪改查(crud)
個(gè)軟件在處理流程上不一定相同

5.從使用環(huán)境分類:

>.單機(jī)
>.網(wǎng)絡(luò)

6.從架構(gòu)分類

>.C/S   客戶端——服務(wù)器
>.B/S   瀏覽器——服務(wù)器


網(wǎng)站和軟件的區(qū)別

1.網(wǎng)站:

>.可以在客戶端通過瀏覽器可以直接訪問。

>.網(wǎng)站和軟件的區(qū)別
網(wǎng)站包含軟件澄耍,軟件不能直接表示網(wǎng)站殃姓。

>.分類
靜態(tài):信息展示闷煤。
動(dòng)態(tài):訪問到網(wǎng)頁數(shù)據(jù)爽醋,并且可以數(shù)據(jù)處理蔬崩。

>.AJAX:異步刷新技術(shù)恶座,可以在不刷新網(wǎng)頁的情況下從服務(wù)器獲取數(shù)據(jù);通過DOM操作將數(shù)據(jù)展示到網(wǎng)頁中沥阳。

2.web

>.即為廣域網(wǎng)

>.網(wǎng)絡(luò)分層
局域網(wǎng)/城域網(wǎng)/廣域網(wǎng)

>.web軟件
動(dòng)態(tài)網(wǎng)站網(wǎng)絡(luò)軟件,即為B/S結(jié)構(gòu)的網(wǎng)絡(luò)軟件

3.web開發(fā)

>.對(duì)B/S結(jié)構(gòu)的軟件進(jìn)行功能開發(fā)

步驟:
==================================

>.需求分析

>.軟件結(jié)構(gòu)設(shè)計(jì)

>.開發(fā)

>.測(cè)試

>.部署和維護(hù)     


軟件結(jié)構(gòu)

1.處理結(jié)構(gòu):

>.軟件界面

>.數(shù)據(jù)處理

>.數(shù)據(jù)存儲(chǔ)

2.擴(kuò)展結(jié)構(gòu)

>.界面——程序控制界面

>.數(shù)據(jù)處理——程序控制數(shù)據(jù)庫

>.數(shù)據(jù)存儲(chǔ)

3.軟件結(jié)構(gòu)設(shè)計(jì):分層模型

>.軟件代碼可以在設(shè)計(jì)過程中分成不同的層次結(jié)構(gòu)跨琳,主要區(qū)別為上下層代碼關(guān)系。
|--myproject/               項(xiàng)目文件夾
    |--main.py              程序入口
    |--menu.py              界面
    |--service.py           程序的業(yè)務(wù)處理類桐罕、服務(wù)類脉让,用于功能處理
    |--data.py              數(shù)據(jù)處理類,用于對(duì)數(shù)據(jù)增刪改查

|--mysql                    數(shù)據(jù)存儲(chǔ)功炮,數(shù)據(jù)倉庫

>.開發(fā)原則:
上層代碼可以調(diào)用下層代碼的變量溅潜、函數(shù)、方法薪伏;
下層代碼盡可以返回結(jié)果給上層代碼使用
同層之間可以互相調(diào)用
不可以跨蹭調(diào)用

web軟件

>.web服務(wù)器通過web接口來連接程序

>.web接口是實(shí)現(xiàn)了wsgi網(wǎng)關(guān)協(xié)議的接口
wsgi:   web service gateway interface

>.python中的web開發(fā)滚澜,一般來說底層都實(shí)現(xiàn)了wsgi的web接口,以實(shí)現(xiàn)瀏覽器訪問服務(wù)器資源的數(shù)據(jù)嫁怀。

1.定義一個(gè)web接口:

from wsgiref.simple_server import make_server

def app(env,response):
    #設(shè)置響應(yīng)頭:描述相應(yīng)數(shù)據(jù)的內(nèi)容
    response("200 OK",[('Content-type','text/html')])
    #返回?cái)?shù)據(jù)
    return [b'<h1>hello</h1>']

#導(dǎo)入一個(gè)創(chuàng)建服務(wù)器的內(nèi)建函數(shù)


#開始創(chuàng)建服務(wù)器
if __name__ == "__main__":

    h_server = make_server('',8000,app )
    print("server is starting...")

    #啟動(dòng)服務(wù)
    h_server.serve_forever()
    #注意本行是空行 一定要留

.上邊的程序段就等于設(shè)置了一個(gè)web接口设捐,通過運(yùn)行此程序潦牛,就可以通過瀏覽器訪問了,本地訪問http://localhost:8000/就可以訪問數(shù)據(jù)了


2.數(shù)據(jù)分發(fā)

from wsgiref.simple_server import make_server

def app(env,response):
    #設(shè)置響應(yīng)頭
    response('200 OK', [('Content-type','text/html')])
    #打印一個(gè)參數(shù)
    print(env['PATH_INFO'][1:])
    path = env['PATH_INFO'][1:]
    #判斷不同的url地址挡育,調(diào)用不同的參數(shù)處理
    if path == 'liangshi':
        return liang_shi(env, response)
    elif path == 'sichou':
        return si_chou(env,response)

    #返回默認(rèn)值
    return [b'<h1>coco</h1>']


#定義二級(jí)處理函數(shù)
#訪問糧食
def liang_shi(env, response):
    return [b'<h1>liangshi</h1>']

#訪問絲綢
def si_chou(env, response):
    return [b'<h1>sichou</h1>']


if __name__ == '__main__':
    http_server = make_server('', 8000,app)
    print("server is starting...")

    http_server.serve_forever()

以上程序相當(dāng)于接口的分發(fā)數(shù)據(jù)方式簡(jiǎn)單實(shí)現(xiàn)



Django

1.基本概念

由python編寫的巴碗,專門用于快速、高效的開發(fā)web應(yīng)用程序的框架即寒。

框架:是模塊的集合橡淆,具備模塊的所有功能,也有簡(jiǎn)單的功能處理流程母赵,方便開發(fā)人員對(duì)于對(duì)應(yīng)流程自動(dòng)化處理逸爵。框架也會(huì)根據(jù)不同的功能流程具有特定的軟件結(jié)構(gòu)模式凹嘲,也算是一個(gè)獨(dú)立的軟件师倔。

類似于pygame,是Python中代碼塊的集合周蹭。一般包含多個(gè)變量趋艘、函數(shù)、類型凶朗。

2.特點(diǎn)

先進(jìn)的MVT處理模式
自動(dòng)化的項(xiàng)目構(gòu)建管理方式
完善的數(shù)據(jù)模型處理
強(qiáng)大的后臺(tái)管理系統(tǒng)
優(yōu)秀的ORM操作模塊
優(yōu)雅的模板操作封裝
優(yōu)異的緩存支持
完美的表單操作封裝
內(nèi)建sqlite數(shù)據(jù)庫瓷胧,并且支持其他各種類型數(shù)據(jù)庫。

3.Django中的MVT處理模式

關(guān)于web軟件的架構(gòu)模式

MVC和MVT

MVC:全名是Model View Controller棚愤,是模型(model)-視圖(view)-控制器(controller)的縮寫搓萧,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯宛畦、數(shù)據(jù)瘸洛、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面次和,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí)反肋,不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來用于映射傳統(tǒng)的輸入斯够、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中囚玫。

    MVT:
        m表示model,負(fù)責(zé)與數(shù)據(jù)庫交互
        v 表示view读规,是核心抓督,負(fù)責(zé)接收請(qǐng)求、獲取數(shù)據(jù)束亏、返回結(jié)果
        t 表示template铃在,負(fù)責(zé)呈現(xiàn)內(nèi)容到瀏覽器

4.安裝Django

最新版 2.0.X 學(xué)習(xí)和測(cè)試
最流行 1.8~1.11 公司常用

默認(rèn)安裝最新版

安裝指定版使用:

    pip install django==1.11

5.項(xiàng)目搭建

創(chuàng)建項(xiàng)目
cmd中
dango-admin startproject 項(xiàng)目名稱(也是目錄名稱)

    >>.目錄結(jié)構(gòu):
    |-- myproject/   項(xiàng)目的主目錄,存放項(xiàng)目中所有文件的文件夾
        |-- myproject/  項(xiàng)目的主項(xiàng)目/根項(xiàng)目,用來管理所有的項(xiàng)目
            |-- __init__.py 包定義文件定義了存放這個(gè)文件的文件夾是一個(gè)python包
            |-- settings.py 項(xiàng)目中所有的配置信息存放的模塊定铜,配置模塊
            |-- urls.py 路由模塊阳液,定義url地址和訪問的處理函數(shù)之間的映射關(guān)系
            |-- wsgi.py 實(shí)現(xiàn)了wsgi網(wǎng)關(guān)協(xié)議的模塊,表示Django項(xiàng)目支持wsgi網(wǎng)關(guān)協(xié)議
        |-- manager.py  項(xiàng)目的命令行支持模塊揣炕,可以在命令行執(zhí)行不同的命令實(shí)現(xiàn)不同的功能

.測(cè)試項(xiàng)目
在cmd進(jìn)入項(xiàng)目目錄

    python manage.py runserver

之后在瀏覽器中訪問

    localhost:8000
    即可查看運(yùn)行成功與否

    >.創(chuàng)建跟項(xiàng)目視圖

        >>.創(chuàng)建一個(gè)view.py在跟目錄
            在此模塊中創(chuàng)建一個(gè)視圖處理函數(shù)帘皿,返回一個(gè)數(shù)據(jù)

        >>.配置路由應(yīng)用
            myproject/urls.py 模塊是路由模塊
            為此模塊添加一個(gè)路由映射地址



        >>.運(yùn)行程序

.開發(fā)二級(jí)頁面
根目錄執(zhí)行命令行:

    dango-admin startapp sec_index(二級(jí)網(wǎng)頁/網(wǎng)站名稱)

二級(jí)頁面目錄結(jié)構(gòu):

    |-- myblog/ 模塊的根目錄;二級(jí)網(wǎng)站的根目錄
        |-- migrations/ 數(shù)據(jù)庫文件存放的文件夾[數(shù)據(jù)庫部分細(xì)講]
        |-- __init__.py 包定義文件
        |-- admin.py 后臺(tái)管理文件[后臺(tái)管理系統(tǒng)細(xì)講]
        |-- apps.py 模塊名稱定義文件
        |-- models.py   數(shù)據(jù)模型定義文件
        |-- test.py 測(cè)試文件——一般用不上
        |-- views.py    視圖模塊畸陡,定義視圖處理函數(shù)

.將二級(jí)頁面的模塊應(yīng)用添加到根項(xiàng)目中:

    修改myproject/settigs.py
    INSTALLED_ADD 選項(xiàng)列表中鹰溜,添加sec_index

.編寫二級(jí)目錄的視圖處理模塊

.配置路由模塊

    sec_index創(chuàng)建一個(gè)路由模塊urls.py

將模塊中的路由添加到根目錄路由模塊中

根目錄的路由是主路由
二級(jí)頁面和目錄的路由是子路由

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丁恭,隨后出現(xiàn)的幾起案子曹动,更是在濱河造成了極大的恐慌,老刑警劉巖牲览,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件墓陈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡第献,警方通過查閱死者的電腦和手機(jī)贡必,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痊硕,“玉大人赊级,你說我怎么就攤上這事〔沓瘢” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵橡伞,是天一觀的道長(zhǎng)盒揉。 經(jīng)常有香客問我,道長(zhǎng)兑徘,這世上最難降的妖魔是什么刚盈? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮挂脑,結(jié)果婚禮上藕漱,老公的妹妹穿的比我還像新娘。我一直安慰自己崭闲,他們只是感情好肋联,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刁俭,像睡著了一般橄仍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天侮繁,我揣著相機(jī)與錄音虑粥,去河邊找鬼。 笑死宪哩,一個(gè)胖子當(dāng)著我的面吹牛娩贷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锁孟,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼育勺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了罗岖?” 一聲冷哼從身側(cè)響起涧至,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桑包,沒想到半個(gè)月后南蓬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哑了,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年赘方,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弱左。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窄陡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拆火,到底是詐尸還是另有隱情跳夭,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布们镜,位于F島的核電站币叹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏模狭。R本人自食惡果不足惜颈抚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嚼鹉。 院中可真熱鬧贩汉,春花似錦、人聲如沸锚赤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宴树。三九已至策菜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背又憨。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工翠霍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蠢莺。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓寒匙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親躏将。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锄弱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)祸憋,斷路器会宪,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 自強(qiáng)學(xué)堂Django教程 目錄 Django是目前最流行的Python Web框架掸鹅。 一、Django的MTV模式...
    CaiGuangyin閱讀 1,157評(píng)論 4 3
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,478評(píng)論 6 427
  • 作為一個(gè)妥妥的小白拦赠,初學(xué)Django巍沙,被它的關(guān)系搞得暈頭轉(zhuǎn)向的。(一)Django簡(jiǎn)介 1 荷鼠、什么是Django?...
    Yinag閱讀 532評(píng)論 0 0
  • 我認(rèn)可內(nèi)在的那個(gè)我句携,知道他和我的源頭是一體的。我的真我超越我的身體允乐、思想矮嫉,甚至超乎我的想象。他是不可思議地巨大喳篇,以...
    茗一笑閱讀 78評(píng)論 0 0