1. 程式人生 > >Django簡介及Django項目的創建詳述

Django簡介及Django項目的創建詳述

交互 展示 ins ase 視圖 行操作 數據 file 關系

Django簡介

Django是一個開源的Web應用框架,由Python寫成。但是,百度百科中講它采用了MVC框架模式,其實這個解釋不準確。
確切的講,Django的模式是:路由控制+MTV模式。所謂的路由控制其實就是采用URL分發器,將一個個URL的頁面請求分發給不同的View處理,View再調用相應的Model和Template。而Django的MTV模式本質上和MVC是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同。
Django的MTV分別是值:
1.M代表模型(Model):負責業務對象和數據庫的關系映射(ORM)。
2.T 代表模板(Template):負責如何把頁面展示給用戶(html)。
3.V 代表視圖(View):負責業務邏輯,並在適當時候調用Model和Template。
MTV的響應模式如下所示:

技術分享圖片

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

Django的下載與命令行模式下項目的創建

Django的下載

註意安裝Django的前提是電腦裏安裝了Python環境與pip。另外在這裏聲明一下,本文是在windows環境下進行操作的。並且本文用到的Django版本是2.0.1。
Windows下安裝Django的命令是:pip install django==2.0.1
Linux下安裝命令為:pip3 install django==2.0.1

命令行模式下Django項目的創建

安裝完成後,命令行進入我們要創建Django項目的文件夾,然後輸入命令:python -m django startproject mysite這樣我們第一個Django項目就創建好了。
我們可以看到,新建的項目的目錄結構如下:

技術分享圖片

這裏有一個manage.py文件,一個與我們項目名稱相同的包,裏面包含settings.py、urls.py、wsgi.py文件。wsgi文件是專門幫我們處理服務器端與客戶端之間交互的,其他主要文件的功能說明如下:
manage.py ----- Django項目裏面的工具,通過它可以調用django shell和數據庫等。
settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其他一些工作的變量。
urls.py ----- 負責把URL模式映射到應用程序。
接著,我們可以在這個項目下創建一個新的應用(這個應用可以是整個項目下的一個分功能):python manage.py startapp app01
最後就是啟動這個Django項目了,我們在項目的目錄下輸入命令:python manage.py runserver 8080這樣我們在訪問http://127.0.0.1:8080/時就可以看到成功的頁面
看到下面這個小火箭就證明你成功啦!

技術分享圖片

pycharm下Django項目的創建及一個簡單的web程序示例

pycharm創建django項目

打開pycharm,點擊File——New Project——項目選擇Django——在彈出來的選項框中填好自己的項目目錄與項目名稱,然後在下面可以選擇同時新建一個app的名稱:

技術分享圖片

得到的程序的目錄結構如下圖所示:

技術分享圖片

這樣得到的項目跟我們用命令行創建的一模一樣。接下來我們就在這裏創建一個簡單的web應用吧。

一個簡單的web程序示例

首先,需要註意的一點是:在windows下需要修改一下settings.py裏面的TEMPLATES列表裏的內容才可以!修改的是:‘DIRS‘: [os.path.join(BASE_DIR, "templates")],原來的DIRS對應一個空列表,這裏將項目的templates文件夾的目錄放在了列表裏。修改後的TEMPLATES列表的內容如下:
TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(BASE_DIR, "templates")],
        ‘APP_DIRS‘: True,
        ‘OPTIONS‘: {
            ‘context_processors‘: [
                ‘django.template.context_processors.debug‘,
                ‘django.template.context_processors.request‘,
                ‘django.contrib.auth.context_processors.auth‘,
                ‘django.contrib.messages.context_processors.messages‘,
            ],
        },
    },
]
在全局的urls.py文件中:
from django.contrib import admin
    from django.urls import path
    
    from whw import views
    
    urlpatterns = [
    path(‘admin/‘,admin.site.urls),
    path(‘index/‘,views.index),
    ]
whw的視圖views.py文件中:
from diango.shortcuts import render 
    
    #create your views here
    
    #這個函數必須要帶一個形參request
    def index(request):
        import datetime
        now = datetime.datetime.now()
        ctime = now.strftime(‘%Y-%m-%d %X‘)
        #註意這裏必須得return 而且第一個參數必須是request
        return reder(request,‘index.html‘,{‘ctime‘:ctime})
我們在項目下再創建一個名為templates的包,註意名字必須命名為templates,裏面新加一個index.html文件,這個文件中的內容為:
<!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
        </head>
        <body>

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

        </body>
        </html>
註意這裏的.html文件中運用到了模板語言,它不在是傳統的html文件了,而是一個模板文件。
最後運行這個程序,我們在瀏覽器中輸入http://127.0.0.1:8000/index即可看到當前時間顯示在了網頁中。

Django簡介及Django項目的創建詳述