天天看點

概念化學習Django-- coding: utf-8 --

Django的由來

Django是一個開放源代碼的Web應用架構,由Python寫成。采用了MVC的軟體設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞内容為主的網站的。并于2005年7月在BSD許可證下釋出。這套架構是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。 Django的主要目标是使得開發複雜的、資料庫驅動的網站變得簡單。Django注重元件的重用性和“可插拔性”,靈活開發和DRY法則(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置檔案和資料模型。
-----維基百科           

Django的MTV開發模式:

Django是一個基于MVC構造的架構;但是在Django中,控制器接受使用者輸入的部分由架構自行處理,是以 Django 裡更關注的是模型(Model)、模闆(Template)和視圖(Views),稱為 MTV模式。它們各自的職責如下:

(1) 模型(Model),即資料存取層 處理與資料相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及資料之間的關系等。

(2) 視圖(View),即表現層 處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。

(3) 模闆(Template),即業務邏輯層 存取模型及調取恰當模闆的相關邏輯。

概念化學習Django-- coding: utf-8 --

Django代碼結構

  • urls.py 網址入口,關聯到對應的views.py中的一個函數(或者generic類),通路網址就對應一個函數。
  • views.py 處理使用者發出的請求,從urls.py中對應過來, 通過渲染templates中的網頁可以将顯示内容,比如登陸後的使用者名,使用者請求的資料,輸出到網頁。
  • models.py 與資料庫操作相關,存入或讀取資料時用到這個,當然用不到資料庫的時候 你可以不使用。
  • forms.py 表單,使用者在浏覽器上輸入資料送出,對資料的驗證工作以及輸入框的生成等工作,當然你也可以不使用。
  • templates 檔案夾 views.py 中的函數渲染templates中的Html模闆,得到動态内容的網頁,當然可以用緩存來提高速度。
  • admin.py 背景,可以用很少量的代碼就擁有一個強大的背景。
  • settings.py Django 的設定,配置檔案,比如 DEBUG 的開關,靜态檔案的位置等。

    Django 架構工作流程如下圖:

概念化學習Django-- coding: utf-8 --

結合Bootstrap和頁面模闆前端設計

Bootstrap自我介紹

Bootstrap是一組用于網站和網絡應用程式開發的開源前端架構,包括HTML、CSS及JavaScript的架構,提供字型排印、窗體、按鈕、導航及其他各種元件及Javascript擴充,旨在使動态網頁和Web應用的開發更加容易。 Bootstrap是GitHub上面被标記為“Starred”次數排名第二最多的項目。Starred次數超過105,000,而分支次數超過了47,000次。

注:前端架構,所有的插件依賴于 jQuery;是以必須在插件檔案之前引用 jQuery

引入 Bootstrap

<!-- 引入 Bootstrap -->
<link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
<!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
<script src="https://code.jquery.com/jquery.js"></script>           

或者:

<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script src="//libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="//libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>           

使用多個資料庫

(1)打開xmjc_analysis/setting.py,有一個預設的資料庫 default,我們可以再加一些其它的(這裡你可以調用Access、SQLServer、Oracle等),比如:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'test',
    'USER': 'test',
    'PASSWORD': 'test123',
    'HOST':'localhost',
    'PORT':'3306',
},
'db1': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '資料庫名稱',
    'USER': '使用者名',
    'PASSWORD': '密碼',
    "HOST": "localhost", #本地
    'PORT':'3306',
},
'db2': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '資料庫名稱',
    'USER': '使用者名',
    'PASSWORD': '密碼',
    "HOST": "伺服器位址",
    'PORT':'3306',
},
}
# use multi-database in django
DATABASE_ROUTERS = ['xmjc_analysis.database_router.DatabaseAppsRouter']
DATABASE_APPS_MAPPING = {
#'app_name':'database_name',
'app1': 'db1',
'app2': 'db2',
}```  
(2)在project_name檔案夾中存放 database_router.py 檔案,内容如下:           

-- coding: utf-8 --

from django.conf import settings