Django-入門(mén)

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!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容