1,什么是Django
快速開(kāi)發(fā)web的框架,底層封裝了大量的模塊(一堆函數(shù)的集合),構(gòu)成了Django框架(一堆模塊的集合,提供了基本的特定的復(fù)雜功能和處理流程)
2,為什么要用Django
常規(guī)的web項(xiàng)目開(kāi)發(fā),底層通過(guò)wsgi網(wǎng)關(guān)接口進(jìn)行請(qǐng)求和服務(wù)的處理,但是底層wsgi進(jìn)行代碼建設(shè)的效率太低,所有要搭建web框架來(lái)提升開(kāi)發(fā)效率。Django是不二人選。。。。
3,Django的組成部分
a,用于進(jìn)行數(shù)據(jù)持久化的ORM模塊()
b,用于進(jìn)行URL地址分配的路由模塊
c.用于進(jìn)行模板頁(yè)面處理的模板系統(tǒng)
d,用于進(jìn)行表單操作的表單模型
e,用于進(jìn)行性能突破的緩存系統(tǒng)
4,Django的架構(gòu)模式
MVC架構(gòu)模式
軟件是用來(lái)進(jìn)行數(shù)據(jù)處理的,數(shù)據(jù)我們用modle來(lái)表示,根據(jù)軟件的三層結(jié)構(gòu)模型,視圖部分用view來(lái)表示,在view中,我們可以和用戶進(jìn)行數(shù)據(jù)交互,交互的數(shù)據(jù)被提交到服務(wù)器,服務(wù)器根據(jù)用戶提交的數(shù)據(jù),經(jīng)過(guò)控制器controller判斷并移交給合適的函數(shù)進(jìn)行處理的過(guò)程,稱為MVC架構(gòu)模式
MVT架構(gòu)模式
Django在處理的過(guò)程中,對(duì)于經(jīng)典的MVC架構(gòu)模式并不是非常認(rèn)同,在實(shí)際項(xiàng)目開(kāi)發(fā)中控制器controller起到的作用有限,所以Django將控制器Controller也進(jìn)行了封裝,但同時(shí)擴(kuò)展了視圖View部分,增加了模板功能,實(shí)現(xiàn)了前端網(wǎng)頁(yè)的復(fù)用,SO,Django的架構(gòu)模式 更符合MVT架構(gòu)模式
5,Django可以做什么?
在實(shí)際的大(中)型web項(xiàng)目開(kāi)發(fā)過(guò)程中,Django起到了很大作用
6,安裝Django
python2中 命令行輸入
python2 -m pip install django
python3中 命令行輸入
python3 -m pip install django
7,如何創(chuàng)建Django項(xiàng)目
a,命令行切換到需要?jiǎng)?chuàng)建Django的目錄下
django-admin startproject mysite(項(xiàng)目名稱)
目錄的結(jié)構(gòu):
|-- mysite/#項(xiàng)目文件夾
? ? ? ? ? ? ? ?|--mysite/? ? ? ? ? ? #項(xiàng)目根模塊
? ? ? ? ? ? ? ?|--__init__.py? ? ? #項(xiàng)目模塊定義文件
? ? ? ? ? ? ? ?|--settings.py? ? ? #Django項(xiàng)目配置文件
? ? ? ? ? ? ? ?|--?urls.py? ? ? ? ? ? ?#網(wǎng)站路由配置文件
? ? ? ? ? ? ? ?|--?wsgi.py? ? ? ? ? ? ?#?wsgi網(wǎng)關(guān)接口操作文件
? ? ? ? ? ? ? ?|--?manage.py? ? ? #項(xiàng)目執(zhí)行模塊~命令行執(zhí)行命令時(shí)使用,不要修改
b,創(chuàng)建的Django進(jìn)行測(cè)試
需要進(jìn)入mysite/目錄下
python manage.py runserver
出現(xiàn)端口號(hào)-->運(yùn)行成功??!

8,創(chuàng)建Django模塊應(yīng)用
a,進(jìn)入mysite目錄下
django-admin startapp blog(模塊名稱)
模塊目錄:
|--mysite/
? ? ? |-- mysite/
? ? ? |--?manage.py
? ? ? ?|--?myblog/??????????????????#模塊應(yīng)用目錄
? ? ? ? ? ? ? ? |--?migrations/#數(shù)據(jù)庫(kù)數(shù)據(jù)持久化配置
? ? ? ? ? ? ? ? |--?admin.py#后臺(tái)管理操作文件
? ? ? ? ? ? ? ? |--?apps.py#應(yīng)用名稱配置文件
? ? ? ? ? ? ? ? |--?models.py#應(yīng)用模型類定義文件
? ? ? ? ? ? ? ? |--?tests.py#應(yīng)用功能測(cè)試文件
? ? ? ? ? ? ? ? |--?views.py#應(yīng)用視圖文件
b,將創(chuàng)建的myblog模塊加入到Django根模塊(mysite)中
打開(kāi)mysite/mysite/settings.py
找到INSTALLED_APPS = [
? ? ? ? ? ? ? ?'django.contrib.admin',
? ? ? ? ? ? ? ?'myblog',
]
c,創(chuàng)建視圖處理函數(shù)
打開(kāi)myblog/views.py
# 引入需要的模塊
from django.http import HttpResponse
# 定義處理函數(shù)
def index(requests):
? ? ? ? return HttpResponse("hello myblog!")
d,配置模塊應(yīng)用的路由映射
在Myblog目錄下創(chuàng)建urls.py文件
#引入需要的模塊
from django.conf.urls import url
from . import views
# 定義路由映射關(guān)系
urlpatterns = [
? ? ? ? url(r'^$',views.index,name="index")
]
e,配置項(xiàng)目主路由
打開(kāi)根模塊mysite/mysite/urls.py
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
urlpatterns = [
? ? ? ? ? url(r'^admin/',admin.site.urls),
? ? ? ? ? url(r'^blog/',include('myblog.urls'))
]
f,運(yùn)行測(cè)試
輸入:localhost:8000/blog
? ? ? ? 結(jié)果: hello myblog!