Django框架基礎 這是我學習北京理工大學嵩天老師的《Python雲端系統開發入門》課程的筆記,在此我特別感謝老師的精彩講解和對我的引導。 1、Django簡介與安裝 Django是一個免費、開源的Web應用框架,由Python寫成。採用了MTV(Model-Template-View)的框架模式 ...
Django框架基礎
這是我學習北京理工大學嵩天老師的《Python雲端系統開發入門》課程的筆記,在此我特別感謝老師的精彩講解和對我的引導。
1、Django簡介與安裝
Django是一個免費、開源的Web應用框架,由Python寫成。採用了MTV(Model-Template-View)的框架模式。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。並於2005年7月在BSD許可證下發佈。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。 ————百度百科
Django是一個產品級框架,支持全球近萬個網站及雲端。相比其他框架,Django充分利用Python特點,開發效率更高。
Django框架的官方文檔:https://docs.djangoproject.com/en/2.0/
Django官方對Django的支持:
使用“pip”命令進行安裝:pip install django
Django版本查看:cmd執行 “python -m django --version”
因為Django 1.x版本和Django 2.x版本差異較大,確認安裝的環境是python 3.x和Django 2.x版本。
如果安裝了Django 1.x版本,可以使用“pip list
”進行查看。可以使用“pip uninstall django
”命令進行卸載後,再安裝Djang 2.0。
2、Django框架的最小程式
步驟1:建立一個Web框架工程
\>django-admin startproject mysite
執行命令後,會生成一個文件夾。工程目錄結構:
mysite/ 外層目錄,名字可以更改 mysite/ 工程目錄,保存代碼和文件 |- __init__.py 一個將mysite定義為包的空文件 |- settings.py 部署和配置整個工程的配置文件(配置文件) |- urls.py URL路由的聲明文件(路由文件) |- wsgi.py 基於WSGI的Web伺服器的配置文件 manage.py 一個與Django工程進行交互的命令工具
步驟2:修改工程,增加功能
可以跳過這一步,直接執行步驟3,不配置任何路由時,顯示如下界面。
步驟2-1:創建一個具體應用(app)
\>python manage.py startapp helloapp
工程和應用之間的關係:
- 工程對應於一個網站,是配置和應用的集合
- 應用對應於特定功能,是具體功能的載體
- 配置和功能分離是高度模塊化的體現
步驟2-2、修改應用的views.py:對URL的具體響應功能
"在helloapp\"下新建一個"templates/"目錄,併在目錄下新建一個"HTMLJSDemo.html"文件。
views.py中包含對某個HTTP請求(url)的響應。
from django.shortcuts import render # Create your views here. def hello(request): return render(request,"HTMLJSDemo.html")
render()是一個打包函數,第一個參數是request,第二個是參數是頁面。
2-3:在hello2app應用中,新增urls.py文件(本地路由文件)
from django.contrib import admin from django.urls import path from . import views # . 代表當前app urlpatterns = [ path('',views.hello), path('admin/', admin.site.urls), ]
2-4:在全局路由文件中增加對本地應用路由文件的引用
from django.contrib import admin from django.urls import path,include # include()函數,用於引入其他路由文件 urlpatterns = [ path('index/',include('helloapp.urls')), path('admin/', admin.site.urls), ]
2-5:設置模板路徑
設置模板路徑,讓Django框架找到模板所在目錄。 修改mysite/settings.py文件中的TEMPLATES屬性。
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'hello2app/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', ], }, }, ]
步驟3:調試運行Web框架
在mysite工程目錄下:
\>python manage.py runserver
django-admin:Django框架全局的管理工具
\>django-admin <command> [options]
- 建立並管理Django工程
- 建立並管理Django工程使用的資料庫
- 控制調試或日誌信息
- 運行並維護Django工程
- 可以使用“\>django-admin help”查看到更多的功能。
manage.py
\>python manage.py <command> [options]
與django-admin類似,但僅針對當前項目。
3、Django的MTV開發模式
M:Models模型(數據)
與數據組織相關的功能
組織和存儲數據的方法和模式,與數據模型相關的操作。
T:Templates模板(樣式)
與表現相關的所有功能
頁面展示風格方式,與具體數據分離,用於定義表現風格。
V:Views視圖(處理)
針對請求選取數據的功能
選擇哪些數據用於展示,指定顯示模板,每個URL對應一個回調函數。
4、實例1:雲端留言板之基礎框架
4.1、基本功能定義
- 提交留言功能
用戶設定自己的名字為A,指定任意名字B向B留言,記為msg,留言保存在雲端
- 獲取留言功能
輸入名字C,雲端返回10條最新留言記錄
4.2、開發要求
- 弱化Web設計,有簡單的Web界面即可
- 重視雲端設計,掌握Django庫的使用
- 數據用文件的方式存儲
4.2、雲端留言板開發流程
1.新建工程cloudms
2-1.新建應用msgapp
2-2.增加模板,即顯示頁面的HTML/CSS/JS代碼,配置路徑
2-3.設定URL路由,本地路由和全局路由
2-4.編寫交互代碼
3.運行工程