4-Django簡介


一 MVC與MTV模型

1.1 MVC

Web服務器開發領域里著名的MVC模式,所謂MVC就是把Web應用分為模型(M),控制器(C)和視圖(V)三層,他們之間以一種插件式的、松耦合的方式連接在一起,模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求,其示意圖如下所示:

image-20200924175052910

1.2 MTV

Django的MTV模式本質上和MVC是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,Django的MTV分別是值:

  • M 代表模型(Model): 負責業務對象和數據庫的關系映射(ORM)。
  • T 代表模板 (Template):負責如何把頁面展示給用戶(html)。
  • V 代表視圖(View): 負責業務邏輯,並在適當時候調用Model和Template。

除了以上三層之外,還需要一個URL分發器,它的作用是將一個個URL的頁面請求分發給不同的View處理,View再調用相應的Model和Template,MTV的響應模式如下所示:

image-20200924175204537

一般是用戶通過瀏覽器向我們的服務器發起一個請求(request),這個請求回去訪問視圖函數,(如果不涉及到數據調用,那么這個時候視圖函數返回一個模板也就是一個網頁給用戶),視圖函數調用模型,模型去數據庫查找數據,然后逐級返回,視圖函數把返回的數據填充到模板中空格中,最后返回網頁給用戶。

二 Django的下載與基本命令

2.1 下載Django

  方式一:在命令行輸入:pip3 install django

    pip install django==1.11.9 -i http://pypi.hustunique.org/simple 指定版本號,指定國內鏡像

  方式二:用pycharm安裝

  方式三:用pycharm的Terminal的命令行安裝

2.2 創建一個django project

django-admin.py startproject mysite

當前目錄下會生成mysite的工程,目錄結構如下:

image-20200924175250501
  • manage.py ----- Django項目里面的工具,通過它可以調用django shell和數據庫等。
  • settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標志以及其他一些工作的變量。
  • urls.py ----- 負責把URL模式映射到應用程序。

2.3 在mysite目錄下創建應用

python manage.py startapp blog
image-20200924175406936

2.4 啟動django項目

python manage.py runserver 8001

這樣我們的django就啟動起來了!當我們訪問:http://127.0.0.1:8080/時就可以看到:

image-20200924175446249

三 基於Django實現的一個簡單示例

3.1 URL控制器

from django.contrib import admin
from django.urls import path

from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',views.index),
]

3.2 視圖

from django.shortcuts import render

def index(request):

    import datetime
    now=datetime.datetime.now()
    ctime=now.strftime("%Y-%m-%d %X")

    return render(request,"index.html",{"ctime":ctime})

3.3 模版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h4>當前時間:{{ ctime }}</h4>

</body>
</html>

四 Django靜態文件配置

4.1 static

新建一個目錄叫:static,我們的css文件,js文件,圖片文件都放在這下面

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

4.2 mycss.css

h4{
    color:red;
}

4.3 myjs.js

$('h4').click(function () {
    $(this).css("color","green");
})

4.4 insex.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/mycss.css">
    <script src="/static/jquery-3.3.1.js"></script>

</head>
<body>
<h4>我是紅色,點擊變綠</h4>
</body>
<script src="/static/myjs.js"></script>
</html>

五 Django請求生命周期

image-20200924175613811

六 Django與其他web框架

'''
a socket服務端
b 根據url不同返回不同的內容
    url---視圖函數
c 字符串返回給用戶
    特殊字符替換

Web框架種類:
a         b   c     Tornado
別人的a   b    c     django(a用的wsgiref)
別人a     b   別人c  flask(c用的jinja2)
另一種分類:
Django和其它

'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM