1、Django簡介
Django是Python語言中的一個web框架,Python語言中主流的web框架有Django、Tornado、Flask 等多種,Django相較與其它WEB框架,其優勢為: ? 大而全,框架本身集成了ORM、模型系結、模板引擎、快取、Session等功能,是一個全能型框架,擁有自己的Admin資料管理后臺,第三方工具齊全,性能折中, ? 缺點:功能太多,資料分表復雜,高性能擴展復雜,Django 是開源的!
2、安裝方式
- pip安裝:在cmd命令視窗中,輸入:
pip install django
2. pycharm安裝:在file >> settings >> project >> project interpreter 中 搜索 django,進行安裝
3. 下載安裝包安裝:在官網:https://www.djangoproject.com/download/ , 下載 django-master.tar,解壓后,在解壓目錄中 運行 cmd(或者在cmd中切換到解壓目錄),然后通過輸入命令:
python setup.py install
3、開發檔案
官方檔案的鏈接在:https://docs.djangoproject.com/en/2.2/ ,點擊頁面右下角的 language 按鈕,可以選擇 zh-hans ,顯示中文,只有部分頁面有中文翻譯,點擊頁面右下角的Documentation version,可以選擇版本,
4、Django框架總覽圖


5、相關術語和規范
-
B/S和C/S架構
Django是用于開發B/S架構的軟體的,軟體主要分為B/S架構和C/S架構:
-
B/S:全稱Browser/Server(瀏覽器/服務器)
-
C/S:全稱Client/Server(客戶端/服務器)
-
-
MVC
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典范,用一種業務邏輯、資料、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶互動的同時,不需要重新撰寫業務邏輯,
-
M: 管理應用程式的狀態(通常存盤到資料庫中),并約束改變狀態的行為(或者叫做“業務規則”),
-
V: 負責把資料格式化后呈現給用戶,
-
C: 接受外部用戶的操作,根據操作訪問模型獲取資料,并呼叫“視圖”顯示這些資料,控制器是將“模型”和“視圖”隔離,并成為二者之間的聯系紐帶,
-
-
MTV
Django也是一個MVC框架,但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式:
-
M: 代表模型(Model),即資料存取層, 該層處理與資料相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及資料之間的關系等,一個抽象層,用來構建和操作你的web應用中的資料,模型是你的資料的唯一的、權威的資訊源,它包含你所儲存資料的必要欄位和行為,通常,每個模型對應資料庫中唯一的一張表,
-
T: 代表模板(Template),即表現層, 該層處理與表現相關的決定: 如何在頁面或其他型別檔案中進行顯示,模板層提供了設計友好的語法來展示資訊給用戶,使用模板方法可以動態地生成HTML,模板包含所需HTML 輸出的靜態部分,以及一些特殊的語法,描述如何將動態內容插入,
-
V: 代表視圖(View),即業務邏輯層, 該層包含存取模型及調取恰當模板的相關邏輯, 你可以把它看作模型與模板之間的橋梁,用于封裝負責處理用戶請求及回傳回應的邏輯,視圖可以看作是前端與資料庫的中間人,他會將前端想要的資料從資料庫中讀出來給前端,他也會將用戶要想保存的資料寫到資料庫,
-
-
ORM
與Flask專案不同(SqlAlchemy),Django自帶ORM物件關系映射(英語:(Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程式技術,用于實作面向物件編程語言里不同型別系統的資料之間的轉換,從效果上說,它其實是創建了一個可在編程語言里使用的--“虛擬物件資料庫”,
ORM方法論基于三個核心原則:
-
簡單:以最基本的形式建模資料,
-
傳達性:資料庫結構被任何人都能理解的語言檔案化,
-
精確性:基于資料模型創建正確標準化的結構,
ORM是隨著面向物件的軟體開發方法發展而產生的,用來把物件模型表示的物件映射到基于SQL 的關系模型資料庫結構中去,這樣,我們在具體的操作物體物件的時候,就不需要再去和復雜的 SQ L 陳述句打交道,只需簡單的操作物體物件的屬性和方法,ORM技術是在物件和關系之間提供了一條橋梁,前臺的物件型資料和資料庫中的關系型的資料通過這個橋梁來相互轉化,
-
6、專案的創建
-
cmd視窗中,切換到指定的專案檔案夾,執行:
django-admin startproject my_project
其中 my_project 是你的專案名稱
這時會在指定的專案檔案夾中,生成一個 mysite 檔案夾,目錄結構如下:
my_project/ manage.py my_project/ __init__.py settings.py urls.py wsgi.py這些目錄和檔案的說明如下:
-
最外層的my_project/ 根目錄是專案的名稱
-
manage.py 是管理 Django 專案的命令列工具
-
里面一層的 my_project/ 目錄包含你的專案主應用,它是一個 Python 包
-
my_project__init__.py:一個空檔案,告訴 Python 這個目錄是一個 Python 包
-
my_project/settings.py:專案的組態檔
-
my_project/urls.py:專案的 url路由配置
-
my_project/wsgi.py:用于專案與WSGI兼容的Web服務器入口,用于專案部署
-
-
cmd視窗中,進入最外層的my_project 專案根目錄
-
在這個目錄下,我們可以輸入如下命令,創建一個新的子應用:
django-admin startapp first_app
-
在該cmd目錄下執行如下命令,可以啟動專案:
python manage.py runserver
該命令后續可以增加引數,如:
python manage.py runserver 8000
python manage.py runserver 127.0.0.1:8000cmd視窗中會出現如下資訊:
F:\django_study\first_pro>python manage.py runserver Watching for file changes with StatReloader Performing system checks... ? System check identified no issues (0 silenced). ? You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. July 09, 2020 - 19:21:38 Django version 3.0.5, using settings 'first_pro.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
-
在瀏覽器中訪問http://127.0.0.1:8000/ ,會出現如下歡迎頁面:

-
第5步能夠打開一個 django 的歡迎頁面,是因為第 4 步 中的命令,啟動了django自帶的一個簡易web服務器,它是一個用純 Python 寫的輕量級的 Web 服務器,僅僅用于開發環境,不要在生產環境使用,
在這個服務器中,在需要的情況下會對每一次的訪問請求重新載入一遍 Python 代碼,所以你不需要為了讓修改的代碼生效而頻繁的重新啟動服務器,然而,一些動作,比如添加新檔案,將不會觸發自動重新加載,這時你得自己手動重啟服務器,
2、pycharm構建專案
-
pycharm 中 file >> new project >> django

PS:只有 pycharm professional版本才可以直接創建django專案
-
location 中,前面路徑,選擇你自己的專案路徑, untitled 專案名改為 firstdjangopycharm 變成如下:
D:\Django工程\first_django_pycharm
3. project interpreter 點擊 左邊的 三角形 ,選擇一個自己創建虛擬環境的解釋器 more settings, 點擊 左邊的 三角形,設定 applications name,點擊 create

4.查看目錄結構如下:

其中first_app子應用下各檔案的說明如下:
-
-
migrations : 執行資料庫的遷移操作,就是把 models 中的 model 映射到資料庫
-
admin :admin管理界面檔案
-
apps: 本應用的相關組態檔
-
models:映射資料庫的model檔案
-
tests:測驗函式檔案
-
views:視圖檔案
-
5.啟動專案
-
Terminal中,運行根目錄下的manage.py,
python manage.py runserver
第一次會運行失敗,因為沒有添加引數,所以需要添加引數,然后在運行一次
-
在pycharm的右上角選擇 edit configurations

-
在 parameters 中寫入 runserver 0.0.0.0:8000

-
再次運行 manage.py,控制臺顯示資訊如下:
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. July 07, 2020 - 22:41:31 Django version 3.0.5, using settings 'django_study_01.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
5.在瀏覽器中訪問: http://127.0.0.1:8000 , 可以看到django的歡迎頁面
-
添加第一個頁面
-
修改first_app/views.py,增加如下代碼:
from django.http import HttpResponse ? def index(request): # 所有的視圖函式都必須有引數request return HttpResponse("你好Django!")
-
這是 Django 中最簡單的視圖,定義了一個index()函式,第一個引數必須是 request,與網頁發來的請求有關,request 變數里面包含get或post的內容,用戶瀏覽器,系統等資訊在里面,
2. 在first_app目錄下新建 urls.py
from django.urls import path from . import views ? urlpatterns = [ path('', views.index, name='index'), ]
3.修改 主應用下的urls.py(first_django_pycharm/urls.py)
from django.contrib import admin from django.urls import path, include ? urlpatterns = [ path('first_app/', include('first_app.urls')), path('admin/', admin.site.urls), ] ?
4.重新啟動manage.py,瀏覽器中訪問:http://127.0.0.1:8000/first_app/,瀏覽器會顯示我們在 views 中回傳的內容:
你好Django!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93473.html
標籤:Python
