
Django是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成。采用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發(fā)來用于管理勞倫斯出版集團(tuán)旗下的一些以新聞內(nèi)容為主的網(wǎng)站的,即是CMS(內(nèi)容管理系統(tǒng))軟件。
Django基于MVC的設(shè)計(jì)十分優(yōu)美
Django下一般有兩種框架 ?
MTV:大部分開發(fā)語言中都有MVC框架
????????????MVC框架的核心思想是:解耦
????????????降低各功能模塊之間的耦合性,方便變更,更容易重構(gòu)代碼,最大程度上實(shí)現(xiàn)代碼的重用
????????????m表示model,主要用于對(duì)數(shù)據(jù)庫層的封裝
????????????v表示view,用于向用戶展示結(jié)果
????????????c表示controller,是核心,用于處理請(qǐng)求、獲取數(shù)據(jù)、返回結(jié)果
MVC:Django是一款python的web開發(fā)框架
? ? ? ? ? ? 與MVC有所不同,屬于MVT框架
????????????m表示model,負(fù)責(zé)與數(shù)據(jù)庫交互
????????????v表示view,是核心,負(fù)責(zé)接收請(qǐng)求、獲取數(shù)據(jù)、返回結(jié)果
????????????t表示template,負(fù)責(zé)呈現(xiàn)內(nèi)容到瀏覽器
Django基本流程的開發(fā) ? ?1.配置環(huán)境安裝pip安裝virtualenv和virtualenvwrapper
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.把virtualenv和virtualenvwrapper配置到我們終端shell配置文件里面
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.使我們的配置生效 source .zshrc (或者 source .bashrc)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.創(chuàng)建虛擬機(jī)環(huán)境 mkvirtualenv + 虛擬環(huán)境的名字
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5.配置django開發(fā)環(huán)境
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6.創(chuàng)建項(xiàng)目? django-admin startproject +項(xiàng)目名稱
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 7.創(chuàng)建應(yīng)用
8.打開項(xiàng)目
9.在項(xiàng)目的setting設(shè)置里面有一個(gè)INSTALLED_APPS把我們的應(yīng)用添加進(jìn)去
10.配置數(shù)據(jù)庫(MySQL) ? import pymysql ?pymysql.install_as_MySQLdb()
11.設(shè)置模型:1生成遷移文件( makemigrations)
? ? ? ? ? ? ? ? ? ? ? ? ? 2.執(zhí)行遷移( migrate)
django實(shí)例的方法:str?(self):重寫object方法,此方法在將對(duì)象轉(zhuǎn)換成字符串時(shí)會(huì)被調(diào)用
????????????????????????????????????save():將模型對(duì)象保存到數(shù)據(jù)表中
????????????????????????????????????delete():將模型對(duì)象從數(shù)據(jù)表中刪除
django中的 ? ?F對(duì)象 ??F()是代表模型字段的值,也就是說對(duì)于一些特殊的字段的操作,我們不需要用python把數(shù)據(jù)先取到內(nèi)存中,然后操作,在存儲(chǔ)到db中了
? ??????????????????????Q對(duì)象過濾器的方法中關(guān)鍵字參數(shù)查詢,會(huì)合并為And進(jìn)行需要進(jìn)行or查詢,使用Q()對(duì)象Q對(duì)象(django.db.models.Q)用于封裝一組關(guān)鍵字參數(shù),這些關(guān)鍵字參數(shù)與“比較運(yùn)算符”中的相同