Django框架學習筆記(1)安裝,測試,創(chuàng)建項目,創(chuàng)建應用,建立連接

????Django是一個高級Python Web框架,鼓勵快速開發(fā)和簡潔實用的設計。它由經(jīng)驗豐富的開發(fā)人員構(gòu)建,可以解決大部分Web開發(fā)的麻煩,因此您可以專注于編寫應用程序而無需重新造輪子。它是免費和開源的。
????使用 Django,只要很少的代碼,Python 的程序開發(fā)人員就可以輕松地完成一個正式網(wǎng)站所需要的大部分內(nèi)容,并進一步開發(fā)出全功能的 Web 服務 Django 本身基于 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設計模式,MVC 模式使后續(xù)對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能。

MVC 與 MTV模型
????MVC 模式(Model–view–controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
模型(M)- 編寫程序應有的功能,負責業(yè)務對象與數(shù)據(jù)庫的映射(ORM)。
視圖(V)- 圖形界面,負責與用戶的交互(頁面)。
控制器(C)- 負責轉(zhuǎn)發(fā)請求,對請求進行處理。
????MTV 模式本質(zhì)上和 MVC 是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,MTV 分別是指:
????M 表示模型(Model):編寫程序應有的功能,負責業(yè)務對象與數(shù)據(jù)庫的映射(ORM)。
????T 表示模板 (Template):負責如何把頁面(html)展示給用戶。
????V 表示視圖(View):負責業(yè)務邏輯,并在適當時候調(diào)用 Model和 Template。
????除了以上三層之外,還需要一個 URL 分發(fā)器,它的作用是將一個個 URL 的頁面請求分發(fā)給不同的 View 處理,View 再調(diào)用相應的 Model 和 Template。
安裝Django
? ? 最基礎的方法,在cmd or powershell中輸入?pip install django,如果同一個電腦有多個python版本共存需要注意安裝位置,同時還需要注意python版本要和Django版本對應。

????????另外python3.7不推薦使用Django3.0,在遇到種種問題之后,我退而求其次選擇了Django2.2。
????有一種安裝方法更加簡單,直接用PyCharm的Package管理安裝即可,PyCharm的Package管理還可以用窗口化的方式安裝,升級,降級,卸載python庫,同時還支持創(chuàng)建只屬于改項目的一個虛擬環(huán)境,做到多個python庫版本的共存,可以說是相當可以了,以后也可能會寫篇PyCharm的使用筆記

????安裝完成后在python中輸入import?django,如果沒有報錯安裝就成功了。
? ??
創(chuàng)建Django項目
????同樣,最基礎的方法,在CMD中cd到你想創(chuàng)建項目的目錄,然后在CMD中輸入?django-admin startproject mysite?
????項目mysite建立完成。
????在PyCharm中可以直接新建項目,同時還可以對環(huán)境進行配置。

? ? ????創(chuàng)建完成后會得到這么一個目錄,由于Django的特性,每一個容器(此時的mysite目錄)中的各個項目(此時mysite目錄中的mysite目錄)都可以被看做是一個獨立的純 Python 包,它的名字就是當你引用它內(nèi)部任何東西時需要用到的 Python 包名。 (比如mysite.urls)

????在這個目錄下的各個文件的作用是:
manage.py: 一個讓你用各種方式管理 Django 項目的命令行工具
__init__.py:?一個空文件,告訴 Python 這個目錄應該被認為是一個 Python 包
asgi.py:用于異步Web服務器和應用程序
settings.py:?Django 項目的配置文件
urls.py:?Django 項目的 URL 聲明,就像網(wǎng)站的“目錄”
wsgi.py:?作為你的項目的運行在 WSGI 兼容的Web服務器上的入口
打開Django服務器
????終端中輸入?py manage.py runserver,注意要在容器中開啟(最外層的包含manager.py的文件夾)。
????PyCharm中直接點右上角的三角鍵運行。
????運行成功后打開127.0.0.1:8000,成功鏈接并且出現(xiàn)火箭圖標即為成功。

????如果不成功有可能是在此之前有啟動過其他服務器,如apache、tomcat,記得關閉。還是不行則可以換Django端口。
? ? 在CMD中輸入?py manage.py runserver 8080 (其中8080是要更改的端口號)。
創(chuàng)建應用
? ? 首先是應用和項目的定義。應用是一個專門做某件事的網(wǎng)絡應用程序。項目則是一個網(wǎng)站使用的配置和應用的集合。兩者之間是包含和被包含的關系。
????在Django的初始設計中應用是可以直接在之前的mysite中直接作為子模塊設計調(diào)用的,如果在容器中創(chuàng)建應用,它就可以作為頂級模塊導入。
????在容器(最外層mysite文件夾)的CMD中輸入?py manage.py startapp polls 后就新建了名為polls的應用。

????此時訪問網(wǎng)站是無法直接連接到polls應用中的,因此需要在polls下新建一個urls.py文件,同時要把mysite/urls.py 中添加指定我們創(chuàng)建的?polls.urls?模塊。在polls.url中添加view中即將建立的視圖。
polls/urls.py
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
? ?path('', views.index, name='index'),
? ?path('<int:question_id>/', views.detail, name='detail'),
? ?path('<int:question_id>/results/', views.results, name='results'),
? ?path('<int:question_id>/vote/', views.vote, name='vote'),
]

????同時還需要在?mysite/urls.py 文件的 urlpatterns 列表里插入一個 include()把關于polls的訪問指向應用。
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
? ?path('polls/', include('polls.urls')),
? ?path('admin/', admin.site.urls),
]

????記得在插入之后保留一個, 不論是否在最后一個,防止下次遺忘。
????函數(shù) path() 具有四個參數(shù),兩個必須參數(shù):route 和 view,兩個可選參數(shù):kwargs 和 name。
????route 是一個匹配 URL 的準則(類似正則表達式)。當 Django 響應一個請求時,它會從 urlpatterns 的第一項開始,按順序依次匹配列表中的項,直到找到匹配的項。
????當 Django 找到了一個匹配的準則,就會調(diào)用view函數(shù),并傳入一個 HttpRequest 對象作為第一個參數(shù),被“捕獲”的參數(shù)以關鍵字參數(shù)的形式傳入。
? ? name 會為你的 URL 取名能使你在 Django 的任意地方唯一地引用它。
????此時如果你在view函數(shù)中定義一個index,index中返回一句話,你就可以訪問127.0.0.1:8000/polls/并且看到了
polls\urls
from django.urls import reverse
def index(request):
????return HttpResponse("Hello, world.you are at the polls index.")


????先到這里吧,還停的挺突然的。分著來吧,打字好累,上課講的就很模糊,自己在官網(wǎng)找了點資料消化了一下,明白了個大概,但可能還是說不清楚,文字表達能力退化的厲害。
????參考文檔:
Django 簡介:https://www.runoob.com/django/django-intro.html
編寫你的第一個 Django 應用:https://docs.djangoproject.com/zh-hans/2.2/intro/tutorial01/