004---Django簡單示例

1、MVC與MTV模型 

在web開發領域裏著名的MVC模式,所謂MVC就是把web應用分爲模型(M)、控制器(C)、視圖(V)三層,達到了解耦的效果。html

一次完整的請求如圖:python

 可是django用的是MTV模式,本質是同樣的,也是爲了各組件之間保持鬆耦合關係,只是定義上有些不一樣。web

  1. M 表明模型(Model):負責進行存取數據和對數據庫的關係映射(ORM) 
  2. T 表明模版(Template):負責渲染和展現頁面給用戶(HTML)
  3. V 表明視圖(View):負責業務邏輯,在適當的時候調用Model和Template

除此以外、還須要一個URL分發器,將用戶發送的每個請求逐一匹配、再分發給不一樣的View處理。shell

整個流程以下圖:數據庫

通常是用戶經過瀏覽器向咱們的服務器發起一個請求(request),這個請求若是匹配到了url,就會去執行url對應的函數,若是不涉及數據調用。那這個時候函數返回一個模版(也就是網頁)給用戶。若是須要調取數據,函數調用模型,模型去數據庫查找數據並返回查詢結果。視圖函數把返回的數據填充到模版文件中渲染,最後返回給網頁給用戶。django

2、Django安裝和基本命令 

 一、下載瀏覽器

pip install django

二、建立django項目服務器

django-admin.py startproject mysite

兩條命令執行完畢後、會生成目錄結構以下app

manage.py ----- Django項目裏面的工具,經過它能夠調用django shell和數據庫等。
settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。
urls.py ----- 負責把URL模式映射到應用程序。 函數

三、在項目目錄下建立應用

python manage.py startapp blog

命令執行後、項目會多出一個應用文件夾、目錄結構以下

四、啓動Django項目

python manage.py runserver 0.0.0.0:8080 (IP  +  PORT 不寫默認127.0.0.1:8000)

項目已啓動、快去瀏覽器訪問:http://127.0.0.0.1:8080

由於是django2.0版本,外觀美觀了許多!

 

 

3、一個簡單的返回當前時間Demo 

 新建一個項目

一、urls.py 加一條url 

1 from django.contrib import admin 2 from django.urls import path 3 from app01 import views             # 導入app01項目中的視圖函數
4 
5 urlpatterns = [ 6     path('admin/', admin.site.urls), 7     path(r'timer/',views.timer),    # 127.0.0.1:8001/timer 會執行 views.py 文件中的timer()函數
8 ]

二、views.py 中定義一個timer()函數

1 from django.shortcuts import render 2 import datetime  # 導入日期時間模塊
3 
4 
5 # Create your views here.
6 def timer(request): 7     t = datetime.datetime.now().strftime('%Y-%m-%d %X') # 當前時間對象
8     return render(request, 'timer.html', {"time": t})   # render() django的三個響應對象之一,渲染頁面用的,第一個參數是固定的,第二個跟要顯示的html文件,第三個跟要返回的數據。在html文件裏渲染時間對象並展現頁面給用戶看

三、項目文件下有個template文件、存放html文件的。timer.html

 1 <!DOCTYPE html>
 2 <html lang="zh_CN">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>動態獲取當前時間</title>
 6 </head>
 7 <body>
 8 
 9 <!--固定語法。視圖函數傳來一個字典{"time":t} 這裏雙括號獲取-->
10 <h4>當前時間:{{ time }}</h4>
11 
12 </body>
13 </html>

四、執行

五、瀏覽器打開看看吧!

相關文章
相關標籤/搜索