Python系列之-1、Django入門

門牙發表於2019-04-07

MVT設計模式

image

  請求訪問流程:HTTP請求經過URL對映器,到達view層,view層可以從Model層獲取資料,再從Template層取得不變的HTML資料,和Model層取得資料組合,最後返回HttpResponse應答。

簡單入門教程

建立專案

1. 在終端下,進入準備存放專案的目錄下執行:django-admin startproject myproject,此時,目錄結構為:
myproject/
	manage.py
	myproject/
		__init__.py
		settings.py
		urls.py
		wsgi.py

其中:
	myproject:專案的根目錄
	manage.py:一個命令列程式,用來管理Django專案
	myproject/settings.py:專案配置
	myproject/urls.py:配置專案的URL對映器
	myproject/wsgi.py:一個WSGI相容的Web伺服器的入口。
複製程式碼
2. Django的專案配置資訊需要儲存到資料庫中,預設使用sqlite3,在myproject/settings.py中設定。

  預設配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

舉例:MySQL資料庫配置
DATABASES = {
	'default': {
		'ENGINE': 'django.db.backends.mysql',
		'NAME':'djangodb',  # 庫名
		'USER':'root',
		'PASSWORD':'root',
		'HOST':'127.0.0.1',
	}
}

複製程式碼

  設定好資料庫的配置檔案後,需要執行如下命令初始化資料庫。

$ python3 manage.py migrate
複製程式碼
3. 建立應用程式

  Django中有專案和應用程式的分別,應用程式可以理解為具有特定功能的一些程式,專案可以包含多個應用程式,例如一個商城,可以把訂單和商品詳細放在兩個應用程式中,各自負責不同的功能。   建立應用程式,在myproject目錄下執行:

$ python3 manage.py startapp books

整個專案的目錄結構如下:
myproject/
	manage.py
	myproject/
		__init__.py
		settings.py
		urls.py
		wsgi.py
	books/
		__init__.py
		admin.py
		apps.py    # 註冊應用
		models.py  # 模型層
		tests.py   # 測試相關程式碼
		views.py   # 檢視層
		migrations/  # 資料庫升級產生的檔案存放在此目錄
			__init__.py
複製程式碼
4. 第一個Django程式
1)修改myproject/settings.py檔案,新增應用程式資訊
INSTALLED_APPS = [
    'books.apps.BooksConfig',   # 新增這行資訊
}
複製程式碼
2) 定義檢視函式:引數是request(HttpRequest),返回值是HttpResponse。

  books/views.py檔案

from django.shortcuts import render
from django.http import HttpResponse

def hello(request):
    return HttpResponse('<h1>你好,世界</h1>')
複製程式碼
3) 修改專案的url對映器

  myproject/myproject/urls.py

from django.contrib import admin
from django.urls import path, include
import books
from books import urls

urlpatterns = [
    path('books/', include(books.urls)),  # 函式
    path('admin/', admin.site.urls),  # 函式
]
複製程式碼
4) 增加應用程式下的url對映器

  books/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello, name='hello')
]
複製程式碼
5) 啟動伺服器

  在專案根目錄下執行如下命令:

$ python3 manage.py runserver
複製程式碼
6) 訪問http://127.0.0.1:8000/books/hello/,可以看到你好,世界的頁面。
7) 解釋

  request先到達myproject/myproject/urls.py的專案URL對映器中,根據path('books/', include(books.urls)),匹配books/,然後請求跳轉到books.urls應用程式URL對映器,根據books/urls.py中的path('hello/', views.hello, name='hello'),匹配'hello/',請求跳轉到views.hello這個檢視函式中,views.hello檢視函式處理業務邏輯,返回應答HttpResponse.

後續再新增view和Model相關知識。

相關文章