Django簡介

1、MVC和MTV模型

一、MVC

  Web服務器開發領域裏著名的MVC模式,所謂MVC就是把Web應用分爲模型(M)控制器(C)視圖(V)三層,他們之間以一種插件式的、鬆耦合的方式鏈接在一塊兒。css

  模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求,其示意圖以下所示:html

  

二、MTV

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

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

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

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

2、Django的下載和基本命令

一、下載Django方法:

pip3 install django

二、建立一個Django project

   切換到準備建立Django項目的目錄下,執行下述命令:數據庫

django-admin.py startproject mysite

   因爲MAC沒有tree命令,經過如下命令查看目錄結構:django

$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

   

  • manage.py ----- Django項目裏面的工具,經過它能夠調用django shell和數據庫等。(與Django交互用的)
  • settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。(項目配置文件)
  • urls.py ----- 負責把URL模式映射到應用程序。(整個的控制器,路由相關)

三、在mysite目錄下從建立應用

  切換到mysite目錄下,執行如下命令:瀏覽器

$ python3 manage.py startapp blog
$ pwd
/Users/hqs/PycharmProjects/mysite

  

  mysite.blog文件夾中放的都是應用相關的內容,views.py是視圖函數相關 ,models.py是數據庫相關。bash

  mysite.mysite中的settings.py是配置相關的,urls.py是和路由相關的。服務器

  再在mysite中建立templates目錄,存放頁面模板。

四、啓動Django項目

MacBook-Pro:mysite hqs$ python3 manage.py runserver 8080
Performing system checks...

System check identified no issues (0 silenced).

You have 14 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.

June 30, 2018 - 04:48:31
Django version 2.0.6, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8080/
Quit the server with CONTROL-C.

  這樣咱們的django就啓動起來了!當咱們訪問:http://127.0.0.1:8080/時就能夠看到:

 

3、基於Django實現一個簡單示例

  先用pycharm建立一個Django項目:

  

一、url控制器(first_pro->urls.py)

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

from app01 import views


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

二、視圖(app01->views.py)

from django.shortcuts import render

# Create your views here.


def timer(request):
    import time
    ctime = time.strftime('%Y-%m-%d %H:%M:%S')   # 2018-06-30 05:48:11
    """
    render方法:
        一、幫忙找到timer.html取出裏面的數據;
        二、按照固定的語法({})把變量嵌套到html文件中
    """
    return render(request, 'timer.html', {"date":ctime})    # 使用render方法,返回一個頁面

三、模板(templates->timer.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h4>當前時間:{{ date }}</h4>
</body>
</html>

執行效果以下所示:

  

4、靜態文件配置

  靜態文件配置就是爲了讓用戶請求時django服務器能找到靜態文件返回。

一、首先建立static文件夾,爲了應用解耦,在static文件夾下建立app01文件夾

  

二、在settings.py中配置靜態文件目錄

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/

STATIC_URL = '/static/'   # 別名(不要改動)

STATICFILES_DIRS = [     # 別名對應的實際路徑(STATICFILES_DIRS不能有任何改動)
    os.path.join(BASE_DIR, "static")  # 對應的是建立的static文件,這個文件名能夠變更
]

"""
瀏覽器輸入:http://127.0.0.1:8000/static/jquery-3.3.1.js
能夠找到這個jquery文件。 
注意:瀏覽器輸入的static指的是別名STATIC_URL,由Django配置。
"""

三、在static/目錄下放入jquery-3.3.1.js文件,在static/app01/目錄下建立timer.css和timer.js文件

h4{
    color: red;
}
timer.css
$("h4").click(function () {
    $(this).css("color", "green");
})
timer.js

四、修改templates/timer.html文件

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

    <script src="/static/jquery-3.3.1.js"></script>
    <!--引入css文件-->
    <link rel="stylesheet" href="/static/app01/timer.css">
</head>
<body>
    <h4>當前時間:{{ date }}</h4>
</body>
<!--引入js文件,注意引入位置,否則找不到h4元素-->
<script src="/static/app01/timer.js"></script>
</html>
相關文章
相關標籤/搜索