框架_Django_1

Django 環(huán)境搭建

虛擬環(huán)境搭建(Ubuntu稽亏,windows類似)

- 安裝virtualenv
pip  install virtualenv

- 統(tǒng)一管理工具
pip install virtualenvwrapper -i https://pypi.douban.com/simple

- 查看安裝目錄
type type virtualenvwrapper.sh

- 添加到用戶環(huán)境變量中
  vi ~/.bashrc 在最后添加
  export WORKON_HOME=/home/atom/.virtualenvs
  source /home/atom/.local/bin/virtualenvwrapper.sh
  > 備注: 根據(jù)virtualenvwrapper.sh位置配置
  
- 創(chuàng)建對(duì)應(yīng)目錄
  mkdir ~/.virtualenvs
  
- 刷新環(huán)境
  source ~/.bashrc

安裝直接workon  環(huán)境名就可以進(jìn)去
- 創(chuàng)建虛擬環(huán)境(默認(rèn)是python2.7)
  # EVN_NAME虛擬環(huán)境的名字环形,自己設(shè)置,沒有影響
  mkvirtualenv EVN_NAME

- 進(jìn)入到虛擬環(huán)境中
  workon EVN_NAME
  > 此時(shí)就是進(jìn)入到虛擬環(huán)境中锐帜,再次輸入Python時(shí),還是顯示2.7版本(默認(rèn))

- 退出虛擬環(huán)境
  deactivate
  
- 刪除虛擬環(huán)境
  rmvirtualenv EVN_NAME
  
- 創(chuàng)建python3的虛擬環(huán)境
  mkvirtualenv EVN_NAME -p /usr/bin/python3.5
  > 查看python3位置: type python3
  > 此時(shí)再次輸入python就是為3.5版本了

一般而言都開始看框架了 败徊,pycharm肯定知道怎么用了吧辟拷,基本工具撞羽。

Django基本流程

Django的特點(diǎn)

強(qiáng)大的數(shù)據(jù)庫功能: 擁有強(qiáng)大的數(shù)據(jù)庫操作接口(QuerySet API),如需要也能執(zhí)行原生SQL衫冻。
自帶強(qiáng)大的后臺(tái): 幾行簡(jiǎn)單的代碼就讓你的網(wǎng)站擁有一個(gè)強(qiáng)大的后臺(tái)诀紊,輕松管理內(nèi)容!
優(yōu)雅的網(wǎng)址: 用正則匹配網(wǎng)址羽杰,傳遞到對(duì)應(yīng)函數(shù)渡紫,隨意定義,如你所想考赛!
模板系統(tǒng): 強(qiáng)大,易擴(kuò)展的模板系統(tǒng)莉测,設(shè)計(jì)簡(jiǎn)易颜骤,代碼,樣式分開設(shè)計(jì)捣卤,更容易管理忍抽。
(注:前后端分離時(shí)八孝,也可以用Django開發(fā)API,完全不用模板系統(tǒng)鸠项。)
緩存系統(tǒng)干跛,與Memcached, Redis等緩存系統(tǒng)聯(lián)用,更出色的表現(xiàn)祟绊,更快的加載速度楼入。
國(guó)際化,完全支持多語言應(yīng)用牧抽,允許你定義翻譯的字符嘉熊,輕松翻譯成不同國(guó)家的語言。

軟件設(shè)計(jì)典范-MVC模式

 Model(模型)
    應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯部分;
    通常模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù);
- View(視圖)
    應(yīng)用程序中處理數(shù)據(jù)顯示部分;
    通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的;
- Controller(控制器)
    應(yīng)用程序中處理用戶交互部分;
    通逞锸妫控制器負(fù)責(zé)從視圖中讀取數(shù)據(jù)阐肤,控制用戶輸入,并向模型發(fā)送數(shù)據(jù);

優(yōu)點(diǎn): 降低各個(gè)功能模塊之間的耦合性讲坎,方便變更孕惜,更容易重構(gòu)代碼,最大程度上實(shí)現(xiàn)代碼的重用晨炕。

Django設(shè)計(jì)模式MTV

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

Django還有一個(gè)url分發(fā)器,它的作用是將一個(gè)個(gè)URL的頁面請(qǐng)求分發(fā)給不同的view處理府瞄,view再調(diào)用相應(yīng)的Model和Template碧磅。

Django 環(huán)境搭建

Django版本

會(huì)這兩種就好了,感覺就是區(qū)別在于路由的設(shè)置遵馆,別的變化不大鲸郊。
Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6(長(zhǎng)期支持版本 LTS)
Django 2.0.x 支持 Python 3.4, 3.5 和 3.6 (注意,不再支持 Python 2)

安裝

- 安裝
進(jìn)入虛擬環(huán)境
  $ pip install Django==1.11.4
- 驗(yàn)證是否成功()
  進(jìn)入到python環(huán)境(終端中輸入python)
  >>> import django
  >>> django.get_version()
  '1.11.4'

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

- 新建Django項(xiàng)目:
    $ django-admin startproject projectName
    
- 目錄層級(jí)說明:
    manage.py 一個(gè)命令行工具货邓,可以使我們多種方式對(duì)Django項(xiàng)目進(jìn)行交互
    projectName/__init__.py 一個(gè)空文件秆撮,告訴python這個(gè)目錄被看做一個(gè)python包(有這個(gè)能稱之為包)
    projectName/settings.py 項(xiàng)目的配置文件
    projectName/urls.py  項(xiàng)目URL聲明(路由器)
    projectName/wsgi.py    項(xiàng)目與WSGI兼容的Web服務(wù)器入口(網(wǎng)關(guān)接口,通常用在現(xiàn)線上環(huán)境部署)
    
- 項(xiàng)目的運(yùn)行:
    $ python manage.py runserver 
    $ python manage.py runserver 0.0.0.0:8000
    $ python manage.py runserver 0:8000  # 0.0.0.0簡(jiǎn)寫方式
    
- settings.py項(xiàng)目配置文件
    BASE_DIR 項(xiàng)目根目錄
    SECRET_KEY 秘鑰
    DEBUG 調(diào)試的開啟
    ALLOWED_HOSTS 允許訪問的主機(jī)
    INSTALLED_APPS 安裝的應(yīng)用
    MIDDLEWARE 中間件
    ROOT_URLCONF 站點(diǎn)url配置
    TEMPLATES 模板
    WSGI_APPLICATION wsig應(yīng)用
    DATABASES 數(shù)據(jù)庫
    AUTH_PASSWORD_VALIDATORS 密碼驗(yàn)證規(guī)則
    LANGUAGE_CODE 語言(中文: zh-hans)
    TIME_ZONE 時(shí)區(qū) (中國(guó)時(shí)區(qū): Asia/Shanghai)

- 站點(diǎn)管理的漢化版(在settings.py中替換以下內(nèi)容即可)
    LANGUAGE_CODE = 'en-us' 替換 LANGUAGE_CODE = 'zh-Hans'
    TIME_ZONE = 'UTC' 替換 TIME_ZONE = 'Asia/Shanghai'

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

-  首先cd projectName,進(jìn)入項(xiàng)目目錄下

- 然后python manage.py startapp appName
項(xiàng)目文件說明: 
  admin.py 站點(diǎn)配置
  models.py 模型
  views.py 視圖
一個(gè)項(xiàng)目中可以創(chuàng)建多個(gè)應(yīng)用;

激活應(yīng)用

settings.py文件中换况,將appName應(yīng)用加入到INSTALL_APPS選項(xiàng)中.
注冊(cè):
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appName'   # 添加自己的應(yīng)用
]
請(qǐng)求流程: 用戶請(qǐng)求 -> urls -> views -> templates -> 用戶響應(yīng) 【從后往前寫】

視圖函數(shù)

- 方式一
def hello(request):
    return HttpResponse('hello')

- 方式二
def hello(request):
    # hello.html模板
    return render(request, 'hello.html')

啟動(dòng)服務(wù)器

語法:
    python manage.py runserver ip:port
例如:
    python manage.py runserver
備注:
    IP可以不寫职辨,代表即是本機(jī)IP
    端口號(hào)默認(rèn)是8000
    啟動(dòng)成功后,在瀏覽器可以看到”It worked!”
說明:
    這是一個(gè)純python寫的輕量級(jí)web服務(wù)器戈二,僅僅在開發(fā)測(cè)試階段中使用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舒裤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子觉吭,更是在濱河造成了極大的恐慌腾供,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伴鳖,居然都是意外死亡节值,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門榜聂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搞疗,“玉大人,你說我怎么就攤上這事须肆∧淠耍” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵休吠,是天一觀的道長(zhǎng)扳埂。 經(jīng)常有香客問我,道長(zhǎng)瘤礁,這世上最難降的妖魔是什么阳懂? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮柜思,結(jié)果婚禮上岩调,老公的妹妹穿的比我還像新娘。我一直安慰自己赡盘,他們只是感情好号枕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陨享,像睡著了一般葱淳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抛姑,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天赞厕,我揣著相機(jī)與錄音,去河邊找鬼定硝。 笑死皿桑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔬啡。 我是一名探鬼主播诲侮,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼箱蟆!你這毒婦竟也來了沟绪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤空猜,失蹤者是張志新(化名)和其女友劉穎近零,沒想到半個(gè)月后诺核,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抄肖,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡久信,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漓摩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裙士。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖管毙,靈堂內(nèi)的尸體忽然破棺而出腿椎,到底是詐尸還是另有隱情,我是刑警寧澤夭咬,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布啃炸,位于F島的核電站,受9級(jí)特大地震影響卓舵,放射性物質(zhì)發(fā)生泄漏南用。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一掏湾、第九天 我趴在偏房一處隱蔽的房頂上張望裹虫。 院中可真熱鬧,春花似錦融击、人聲如沸筑公。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匣屡。三九已至,卻和暖如春拇涤,著一層夾襖步出監(jiān)牢的瞬間捣作,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工工育, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虾宇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓如绸,卻偏偏與公主長(zhǎng)得像嘱朽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子怔接,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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