原文出自: http://www.ibm.com/developerworks/cn/opensource/os-django/
比較有啟發性質的一篇文章,會避免很多彎路
Django 是一個基于 Python 的開源 Web 應用程序框架,其目的是使創建數據庫驅動的 Web 站點和 Web 應用程序更加容易。開發 Django 應用程序很簡單,因為該框架包含了一個開發 Web 服務器。但是這個框架不適合在生產環境中使用,因此需要進一步將 Django 應用程序部署到 Web。在本文中,您將了解 Django 框架,以及如何在本地機器上安裝它。探索 Django 應用程序是如何開發的,以及為您的應用程序創建的自動管理界面。接著您將了解如何在運行 Apache 和 mod_python 的服務器上將 Django 應用程序部署到 Web。最后,了解如何根據應用程序需求的增長而擴展 Django 應用程序。
0 評論:
Django
Django 是一個針對 python 語言的開源 Web 開發框架,其目的是盡可能自動化更多的開發流程,使您能夠專注于軟件開發。這個框架既是松散耦合的,又是緊密相連的,因為框架的各個部分可以相互連接,但它們之間是彼此獨立的。框架的獨立性意味著您可以僅使用所需的 Django 部分,而不用擔心依賴性帶來的問題。
Django 加快了 Web 應用程序的編寫,并且大大減少了所需的代碼,從而使維護應用程序更加容易。Django 嚴格遵循 Don't Repeat Yourself (DRY) 原則,因此每個不同的代碼片段或數據僅在一個位置上出現。這意味著需要進行更改時,只修改一個地方就行,從而使更改軟件更快、更輕松。
Django 是由 Lawrence Journal-World 報的 Web 開發團隊在 2003 年開發的。當時該團隊需要在很緊迫的時間內發布應用程序和改進,因此他們決定創建一個能節省時間的 Web 框架,以在期限內交付產品。該團隊在 2005 年 7 月以開源軟件的方式發布了這個框架,現在由來自世界各地的開發人員進行維護和開發。
Django 框架是在 Berkeley Software Distribution (BSD) 開源許可下發布的,因此能夠再分發或重用這些源代碼和二進制文件(可以修改),但必須在再分發包中保留版權需知、許可條款和免責聲明。這些注意事項必須包含在再分發軟件的文檔和補充材料中。該許可規定,在未獲得書面許可的情況下,不得使用 Django 這個名稱或 Django 貢獻者的名稱冠名或促銷衍生產品。
設置基本的 Django 開發環境
由于 Django 的安裝非常直觀,所以能夠輕松地設置開發環境。Django 完全是用 Python 編寫的,因此在安裝 Django 之前必須先安裝 Python。如果您使用 Mac OS X 或 Linux® 操作系統,可能已經安裝了 Python。僅需在 shell 中運行 python
(在 Mac 上使用 Terminal.app),您就可以看見清單 1 所示的內容。
清單 1. 確保 Python 正在運行
$ python Python 2.5.1 (r251:54863, Nov 11 2008, 17:46:48) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. Listing 1 - Checking for Python on Mac OS X
只要您的系統安裝了 2.3 至 2.6 版本的 Python,就能夠安裝 Django。如果您是 Microsoft® Windows® 用戶,或者您需要升級到更新的版本,請 下載 Python。有一個針對 Windows 用戶的簡單的安裝包,因此安裝 Python 應該不會很難。
當您確定您的計算機已經安裝了 Python 之后,就可以進一步安裝 Django 了。Django 有 3 個安裝選項:安裝官方發布版,安裝用于分發的安裝包,或安裝來自 Subversion 的最新的 “trunk” 版本。對于本文,我只介紹官方發布版的安裝。關于 trunk 版本的安裝信息,請參閱官方文檔說明(見 參考資料)。
安裝官方 Django 發布版的第一步是從 Django 下載頁面獲取 tarball。下載這個文件之后,對其進行解壓縮。在 linux 中,僅需在 shell 提示符處發出以下命令(確保導航到下載該包的目錄)。注意,V1.0.2 是撰寫本文時的最新版本,因此要用您下載的包的文件名替換這個文件名:tar zxvf Django-1.0.2-final.tar.gz
。
在 Mac OS X 中,Web 瀏覽器很可能會在下載完成之后自動解壓縮這個包,因此得到的文件是 Django-1.0.2-final.tar。使用以下命令解壓縮這個文件:tar xvf Django-1.0.2-final.tar
。如果您使用的是 Windows,您可以使用類似于 7-Zip 的工具解壓縮這個 tarball。
解壓縮 tarball 之后(可能解壓縮到硬盤上類似于 Django-1.0.2-final 的位置),在命令提示符中導航到相應的文件夾。要安裝 Django,發出以下命令(Mac OS X 或 Linux):sudo python setup.py install
。對于 Windows 用戶,確保已經使用管理員特權打開命令提示符,并發出以下命令:setup.py install
。
完成以上操作之后,Django 將被安裝到您的 Python 安裝的 site-packages 文件夾中,您可以開始在 Django 中進行開發了。在剖析 Django 應用程序之前,我們先測試開發環境是否正確。首先,我們檢查 Django 是否安裝正常。打開 shell 或命令提示符,并發出命令 python
啟動 Python 交互工具。現在,在 Python 提示符上發出如清單 2 所示的命令(不要輸入 >>>
):
清單 2. 檢查 Django 是否正確安裝
>>> import django >>> django.VERSION
如果安裝成功,將看到如清單 3 所示的文本。
清單 3. 成功安裝
(1, 0, 2, 'final', 0) >>>
在檢查到 Django 已正確安裝之后,我們還需要測試開發服務器是否正常工作。為此,我們需要創建一個項目。創建一個目錄(我的 Mac OS X 系統使用的是 /home/joe/django)來儲存您的 Django 項目,然后導航到該目錄。在這里,使用命令:django-admin.py startproject testproject
。
這將在您的項目目錄內創建一個新的目錄 testproject。這個目錄包含 4 個文件:__init__.py、manage.py、settings.py 和 urls.py。現在還不要考慮這些文件是做什么的;我們跳過這步,先運行項目。確保您現在在項目文件夾中(在提示符上使用 cd testproject
),并發出命令:python manage.py runserver
。您應該看到如下所示的輸出。
清單 4. 運行 Django 開發服務器
Validating models... 0 errors found Django version 1.0.2 final, using settings 'testproject.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
這個消息告訴我們開發服務器在 URL http://127.0.0.1:8000/ 上運行。打開您最喜歡的 Web 瀏覽器,并將這個 URL 粘貼到地址欄。您應該會看到如下所示的頁面。
圖 1. Welcome to Django 頁面

現在,您已經有一個正在運行的 Django 開發環境。需要注意,盡管您可以在這個環境中運行完整的 Django 應用程序,但它并不適合在生產環境中使用。我們將在本文的后面討論部署用于生產的 Django 應用程序。
剖析 Django 應用程序
Django 的架構松散地基于模型-視圖-控制器(Model-View-Controller,MVC)模式。在該模式中,應用程序邏輯、用戶界面(UI)和數據訪問層是分開的,從而允許在不影響到其他層的情況下獨立地修改各個層。不過,根據 Django 文檔的描述,Django 采用的是類似的模式:模型-模板-視圖(Model-Template-View,MTV)架構。這里的模型可以看作數據訪問層,應用程序在這里與其他數據庫和信息源交互。模板層定義向用戶顯示數據的方式,這相當于 MVC 模式中的視圖層。在 MTV 架構中,視圖層描述應該向用戶顯示哪些數據。它不定義數據的顯示方式;它將這個任務交給模板層處理。至于 MVC 的控制器層,Django 將它看作框架本身,因為它決定向其發送請求的視圖(像在 URL 配置中定義的那樣)。
除了模型、模板和視圖層之外,Django 還提供一些高級的開箱即用的特性,比如 URL 配置、自動管理界面和緩存等。像 Python 一樣,Django 背后的關鍵思想之一就是 “大批包含”,這意味著它自帶了大量由其他包組成的標準庫,您可以在應用程序中直接使用,而不需另外下載。
Django 應用程序的模型層由 Django 的數據訪問層處理。在這個層中,可以找到所有與數據相關的內容:連接設置、驗證參數和關系等等。Django 開箱即用地支持 PostgreSQL(Django 創建者最喜歡的數據庫)、MySQL、SQLite 和 Oracle。在設置文件中儲存了可以使用的數據庫,選擇哪個數據庫對模型層沒有任何影響。
Django 中的模型可以看作是對用 Python 代碼表示的數據庫表架構的描述。Django 使用模型在數據庫中生成和執行 SQL 語句,反過來,這些 SQL 語句會返回一個結果。然后 Django 切換到一個您的 Django 應用程序可以使用的 Python 數據結構。在這里,一個明顯的優勢就是您可以在不同的數據庫系統之間進行熱切換(例如,從 mysql 切換到 PostgreSQL),并且不需要更改您的模型。
清單 5 中的代碼是一個示例模型定義。它通常存儲在 Django 應用程序目錄下的 models.py 文件中。
清單 5. 示例 Django 模型
from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.EmailField() date_of_birth = models.DateField()
Django 應用程序的模板層允許您將 Web 應用程序的 UI 或顯示布局與它的數據分開。它使用占位符變量和簡單的邏輯語句定義應該在模板中填充的數據。模板通常輸出 HTML 文檔,但也可以輸出 XML 或其他類型的文檔。
模板層背后的思想就是表示層代碼與業務層代碼分離。這意味著 Python 開發人員可以專注于開發軟件,而由 Web 設計人員處理模板。此外,開發人員和設計人員還可以同時開發同一個項目,因為這兩個組件是完全分離的。
注意,Django 的模板系統不允許直接從模板執行 Python 代碼。它提供一組基礎的編程特性,比如變量、邏輯語句(if
語句)和循環結構(比如 for
循環),這就為數據表示提供充足的邏輯。清單 6 是一個示例 Django 模板。
清單 6. 示例 Django 模板
<html> <head> <title>Your message has been sent</title> </head> <body> <h1>Thank you!</h1> <p>Just wanted to say a quick thanks, {{ name }}, for the message you have just sent.</p> <p>It was sent on {{ sent_date|date:"j F Y" }}. We aim to respond within 48 hours.</p> <p>Thanks again!</p> </body> </html>
清單 7 顯示了如何在 Django 應用程序中使用這個模板。
清單 7. 在視圖中加載示例 Django 模板
def send_message(request): name = "Joe Lennon" sent_date = datetime.datetime.now() return render_to_response('thankyou.html', locals())
視圖函數(通常稱為 “視圖”)是基礎的 Python 函數,它接受一個請求參數并返回一個響應。這種請求通常來自 Web 服務器,視圖接受隨該請求一起傳遞的所有參數。然后該視圖在返回響應之前,執行確定適當的響應所需的邏輯。可以將視圖儲存在 Django 應用程序中的任意位置,但它們通常儲存在名為 views.py 的文件中。清單 5 是一個示例視圖函數 send_message
。它接受 request
參數,并返回一個顯示模板(thankyou.html)作為響應。
您剛才了解到可以將視圖儲存在任何位置。但是如果真這樣做的話,Django 如何找到它們呢?這就需要用到 URLconfs,它定義 URL 和與之對應的視圖的關系。URLconfs 儲存在一個稱為 urls.py 的文件中,并且將 URL 映射到視圖函數中。例如,url /send_message/ 將映射到我們的 send_message 視圖,如清單 7 所示。事實上,URLconfs 的工作方式允許它使用更簡潔的 URL — 換句話說,您的 URL 可能不是查詢字符串myfile.PHP?param1=value1
,而是 /myfile/value1/。
清單 8 中的代碼是一個示例 urls.py 文件,它像在清單 7 中定義的那樣,將 URL /send_message/
連接到我們的 send_message
視圖函數。
清單 8. 示例 URLconf
from django.conf.urls.defaults import * from testproject.views import send_message urlpatterns = patterns('', ('^send_message/$', send_message), )
最有趣、最經常被提起的 Django 特性之一就是它的自動管理界面。有些項目不僅需要開發前端界面,而且還要開發后端管理界面,參與這些項目的 Web 應用程序開發人員將會嘗到沮喪和煩惱的滋味。管理界面通常很枯燥,并且沒有什么技巧可談,您的編程能力在此也無用武之地。Django 的自動管理界面特性在這里能幫上大忙,因為它通過自動化整個任務輕松滿足這一需求。
當您為應用程序創建了模型并設置好數據庫之后,您就可以為它啟用管理界面了。完成之后,將瀏覽器指向 http://127.0.0.1:8000/admin/ 并登錄以管理 Django 應用程序的后端。這個界面是高度可定制的,并且具有優秀的基于用戶和組的身份認證控件。下面是它的屏幕截圖。
圖 2. Django 自動管理界面的實際效果

我們已經概述過如何創建 Django 應用程序,以及它所基于的 MTV 模式是如何工作的。我們查看了模型、模板、視圖和 URLconfs 等概念;并且稍微了解了 Django 優秀的自動管理界面系統。如果您想深入了解如何開發 Django 應用程序,請訪問 Django 項目的官方 Web 站點,閱讀其中的文檔或Django Book(見 參考資料)。它們出色地介紹了關于 Django 的各個方面,并且非常詳盡。
接下來,檢查一下 Django 應用程序,然后將其部署到生產服務器。
準備部署 Django 應用程序
我們在前面已經看到,Django 框架還包含了一個開發服務器,用它調試和測試 Django 應用程序非常方便。不幸的是,這個服務器只能在本地環境中運行,不能承受由許多用戶同時使用的生產 Web 應用程序產生的負載。因此,您需要將 Django 應用程序部署到生產級 Web 服務器,比如 Apache 或 lighttpd。通過一些步驟使您的應用程序成為生產級應用程序,然后學習如何準備 Web 服務器,讓它能夠為 Django 應用程序提供服務。
在討論如何為 Django 應用程序設置生產環境之前,我們先要對 Django 應用程序進行一些設置。這些設置更改很重要,因為 Django 應用程序的任何漏洞都將暴露在 Web 上。
您通常不希望在開發環境中更改這些設置,因為調試消息和錯誤對應用程序的維護十分有用。為了解決這個問題,您可以保留 2 個獨立的設置文件:一個用于開發服務器,一個用于生產服務器。此外,您也可以通過以下技巧將這兩個設置放在相同的文件中,并讓 Django 在開發環境中只使用開發設置。為了實現這個目的,您必須按照以下方式布置 settings.py 文件(很明顯,將使用您的開發服務器的主機名替換 joe-mac-mini
,如清單 9 所示)。
清單 9. 分離開發和生產環境的設置
import socket if socket.get_hostname() == 'joe-mac-mini': #Development Server Settings go here else: #Production Server Settings go here
現在,已經將用于兩個環境的設置分開,我們將更改用于生產環境的設置。在生產環境中必須更改的兩個設置是 DEBUG
和 TEMPLATE_DEBUG
。在您使用 django-admin.py startproject
創建 Django 應用程序時,它們的默認設置為 True。在生產環境中,您必須將其更改為 False,這十分關鍵。在 Procduction 部分的 settings.py 中,這行代碼應該為:DEBUG = TEMPLATE_DEBUG = False
。
默認情況下,當 Django 應用程序出現無法解決的異常時,Django 將發送一個電子郵件。要啟用這個特性,必須告訴 Django 電子郵件的接收者是誰。這可以通過在 settings.py 文件中使用 ADMINS
設置來實現。
清單 10. 定義應用程序管理員
ADMINS = ( ('Joe Lennon', 'joe@joelennon.ie'), )
如果您在開發 Django 應用程序時遇到錯誤,就會注意到 Django 生成的錯誤頁面,它包含大量有用信息,幫助您找到問題的根源。當您關閉調試模式時,這些錯誤頁面就會消失,因為它們是潛在的安全威脅。因此,如果某人遇到一個錯誤(例如,404 Page Not Found、403 Forbidden 或 500 Internal Server Error 等錯誤),他將看到一個難看的錯誤代碼頁面。為了解決這個問題,我們建議創建一個美觀的說明性錯誤模板頁面,然后將其放到應用程序的模板文件夾中。應該根據每個模板所表示的錯誤代碼對其進行命名。對于 Page Not Found,應該對 404.html 文件進行命名;對于 Internal Server Error,應該對 500.html 進行命名,等等。
現在已經配置好用于生產環境的設置,接下來我們將演示如何為 Django 應用程序設置生產環境。雖然也可以使用 FastCGI 和 lighttpd 運行 Django 應用程序,但我們通常使用 Apache 和 mod_python。我們現在看看如何將 Django 應用程序部署到運行 Apache 和 mod_python 的服務器。然后粗略了解一下如何將 Django 應用程序部署到共享的 Web 宿主環境,在這里不能訪問 httpd.conf。
將 Django 應用程序部署到運行 mod_python 的 Apache
根據 Django 文檔,建議對運行 mod_python 的 Apache Web 服務器進行設置,然后再部署 Django 應用程序。Django 支持對 Apache HTTP Server V2.0 和 mod_python V3.0 或更高版本進行設置。mod_python 是一個 Apache 模塊,它將對 Python 編程語言的支持集成到 Web 服務器中。與用傳統的 CGI 方法執行 Python 腳本相比,這種方法要快得多。
為了將 mod_python 模塊加載到 Apache,需要將以下幾行代碼添加到您的服務器的 httpd.conf 文件中:LoadModule python_module /usr/lib/apache2/modules/mod_python.so
。
除了加載 mod_python 模塊之外,您還需要設置一個 Location
指令,它將告訴 Apache 將您的 Django 應用程序關聯到哪個 URL。為了方便演示,這里的設置適用于前面創建的 testproject 項目。
清單 11. testproject Location
指令
<Location "/testproject"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE testproject.settings PythonDebug Off </Location>
它將告訴 Apache 可以通過 /testproject URL 訪問您的 Django testproject 項目。例如,如果您的服務器域名為 example.com,通過 http://www.example.com/testproject/ 就可以訪問您的應用程序。為了將這個新設置加載到 Apache,僅需重啟 Apache 服務器。
Django 開發人員極力建議不要在您的 Web 應用程序所在的 Web 服務器上提供媒體文件(比如圖像、視頻和音頻等),但在很多情況下,您可以添加媒體文件。為了在 Web 站點上設置一個可以提供媒體文件的區域,您可以將以下指令添加到 httpd.conf 文件中。
清單 12. 告訴 Apache 不對媒體文件使用 mod_python
<LocationMatch "\.(png|gif|jpg|mov|mp3|avi|wav)$"> SetHandler None </LocationMatch>
現在已經完全設置好 Apache 和 mod_python,您可以將 Django 應用程序部署到生產 Web 服務器了。接下來,我們看看一個常見的部署場景:將 Django 應用程序部署到不能修改 httpd.conf 文件的共享 Web 宿主服務器。
將 Django 應用程序部署到共享 Web 宿主環境
不幸的是,專用服務器和虛擬私有服務器非常昂貴,因此這不是針對大眾的可行選擇。常見的做法是先將 Web 應用程序部署到共享宿主環境,當應用程序變得流行時再升級到專用服務器。好消息是,大部分 Web 宿主服務器都支持 Python,因此在這個場景中可以部署 Django 應用程序。
與專用環境不同,終端用戶通常不能選擇運行獨立的服務器進程,或編輯 httpd.conf 配置文件。這意味著他們不能完成前面小節描述的更改,因此就不能以這種方式運行 Django。幸運的是,可以使用執行 FastCGI 程序的 Web 服務器衍生進程,從而將 Django 部署到共享宿主環境。接下來,創建一個名為 .htaccess 的文件,并將其放到 Django 應用程序所在的目錄。
清單 13. .htaccess 文件
AddHandler fastcgi-script .fcgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ testproject.fcgi/$1 [QSA,L]
然后創建一小段 Python 腳本,告訴 Apache 您的 Django 項目的不同設置,并執行 FastCGI 程序。這個文件的名稱并不重要,但它必須與 .htaccess 中 RewriteRule
行的文件名相同。在清單 14 中,我們使用的文件名為 testproject.fcgi,因此我的腳本也使用這個名稱。
清單 14. testproject.fcgi 文件
#!/usr/bin/python import sys, os sys.path.insert(0, "/home/joelennon/python") os.environ['DJANGO_SETTINGS_MODULE'] = "testproject.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")
確保這個文件能夠執行。如果能夠通過 shell 訪問共享宿主服務器,請登錄該服務器,并轉到包含該文件的目錄,然后運行 chmod 755 testproject.fcgi
。
如果不能通過 shell 訪問,可以通過更正規的 FTP 客戶端更改文件授權。每次更改應用程序代碼之后,都需要更改該文件的時間戳。這告訴 Apache 應用程序已經更新,然后它會重啟 Django 應用程序。如果能夠通過 shell 訪問,僅需運行 touch testproject.fcgi
。如果不能通過 shell 訪問,那么您可以重新加載或進行編輯保存,這樣也能更新文件的時間戳。
如果您不希望處理這些配置文件,那么可以使用支持 Django 應用程序的宿主服務。最流行的 MediaTemple 宿主提供商隨 GridService 產品提供一個 Django GridContainer 插件,256 MB RAM 的價格為 20 美元/月。GridContainer 運行預先調好的 lighttpd/FastCGI 設置,并且以后可以根據應用程序的需求增加 RAM。
擴展 Django 部署
如果您的 Django 應用程序非常成功,那么您將希望部署具有很強的伸縮能力。在一般的負載下,Web 應用程序都能夠很好地工作,但是 Digg 之類的操作會給應用程序提交大量數據,應用程序難以承受突然增加的負載。還好,Django 和 Python 本身是高度可伸縮的,但隨著應用程序使用的增加,您還需要考慮其他問題。
如果您在共享宿主環境中運行 Django 應用程序,并且感覺到現有的資源已經不夠用,您的當務之急就是升級到專用服務器。如果難以承受昂貴的成本,那么可以使用虛擬私有服務器,它的價格介于共享宿主和專用服務器之間。
隨著應用程序的增長,專用服務器的資源也會很快就變得捉襟見肘。下面的方法能夠減輕服務器的負擔:
- 關閉不使用的進程或守護進程,比如郵件服務器、流服務器、游戲服務器或其他不必要的進程,它們占用寶貴的 CPU 時間和 RAM。
- 將媒體文件轉移到云平臺,比如 Amazon S3。這樣您的 Web 服務器就專門用于 Django 請求,而媒體文件則放在另一個服務器上。
- 關閉 Apache 的 Keep-Alive 選項。Keep-Alive 是 HTTP 協議的一個擴展,它允許通過 HTTP 持久地進行連接。這允許使用同一個 TCP 連接發送多個請求,從而大大提高呈現靜態 HTML 和圖像的速度。不幸的是,這個擴展對 Django 應用程序的性能有負面影響。記住,如果您已經將媒體文件移動到其他服務器,那么請關閉這個選項。要關閉 Keep-Alive,請在 httpd.conf 文件中找到相關的行,并將其改為 Keep-Alive Off。
- 使用 Django 的內置緩存框架。它受流行的分布式內存對象緩存系統 memcached 支持。高效的緩存能夠極大地提升 Django 應用程序的性能。
- 升級服務器。Upgrade your server. 盡量加大 RAM,如果磁盤空間比較勉強,可以考慮添加一個新磁盤。如果服務器反應緩慢,很可能是 RAM 耗盡引起的。不要將錢花在升級處理器上,而是考慮加大 RAM。
- 購買一臺服務器。您的服務器總有一天會無法滿足 Django 應用程序負載。碰到這種情況時,可以添加一臺服務器。這樣,Web 服務器和數據庫服務器分別運行在不同機器上。不過,一定要將 RAM 更多的機器分配給數據庫服務器。如果需要,可以加大新機器的 RAM 和磁盤空間。
- 使用數據庫復制。如果數據庫服務器的資源耗盡,您可以將其復制到多個服務器。復制就緒之后,您就在需要時添加更多服務器,以提供額外資源。
- 添加冗余。對于大型應用程序而言,Web 服務器或數據庫服務器的單點失敗都是災難性的。您應該在需要的地方添加冗余服務器,它們在主服務器失敗時接管其工作。另外,使用負載平衡硬件或軟件(比如 mod_proxy)在多個服務器間分配數據流量,這樣能大大提高服務器的性能。
您應該盡早為 Django 應用程序找到一種擴展方法,這非常重要。這樣,您就能夠在各種場景下實施計劃。因此,如果 Digg 操作嚴重影響到您的應用程序,那么您必須開始考慮一個擴展計劃。這樣,不僅能夠愉快地歡迎新用戶,而且也使應用程序的運行更快。
結束語
在本文中,我們從兩個角度去看待 Django 框架,一是剛開始使用該框架的開發人員,二是已經準備好 Django 應用程序,為將其部署到 Web 尋找指導的開發人員。我們還討論了未來擴展時需要考慮的事項。我們查看了 Django 應用程序的組成,并了解它基于的 Model-Template-View (MTV) 模式。如我們所見,Django 是一個輕量級、容易安裝、容易掌握的框架。它具有優秀的文檔和充滿活力的社區,因此 Django 是為您的下一個 Web 應用程序提
文章列表