Django介紹 Django是一個基於Python的高級Web開發框架 它能夠讓開發人員進行高效且快速的開發 高度集成,方便開發 正常上網流程 打開瀏覽器 向目標URL發送一個HTTP請求 伺服器把頁面響應給瀏覽器 瀏覽網頁的基本原理 本質是 網路通信 ,即通過網路進行數據傳遞 瀏覽器經過通信後獲 ...
Django介紹
- Django是一個基於Python的高級Web開發框架
- 它能夠讓開發人員進行高效且快速的開發
- 高度集成,方便開發
正常上網流程
打開瀏覽器->向目標URL發送一個HTTP請求->伺服器把頁面響應給瀏覽器
瀏覽網頁的基本原理
本質是網路通信,即通過網路進行數據傳遞
瀏覽器經過通信後獲取到該頁面的源代碼文檔
瀏覽器解析文檔後以適當的形式展示給用戶
編輯器推薦
- Pycharm
- Sublime Text,Atom
Django項目開發
創建項目
- 打開命令行,進入想要安置項目的目錄
- 命令行輸入
django-admin startproject YourProjectName
項目目錄結構
查看可用命令(在manage.py當前目錄下執行)
python manage.py
目錄(這裡為myblog目錄)
- 項目的一個容器
- 包含項目最基本的一些配置
- 目錄名稱不建議修改
項目目錄介紹
wsgi.py
- WSGI(Web Server Gateway Interface)
- Python伺服器網關介面
urls.py
-url配置文件
settings.py - 項目總配置文件
- 包含資料庫、Web應用、時間等各自配置
**_init__.py** - Python中聲明模塊的文件
- 內容預設為空
創建應用
- 打開命令行,進入項目中manage.py同級目錄
- 命令行輸入
python manage.py startapp YourAppName
- 添加應用名到setting.py中的INSTALLED_APPS里
註意:應用名不能與已有名稱重覆,否則會報錯
migrations
- 數據移植(遷移)模塊
- 內容自動生成不需要管它
admin.py
- 該應用的後臺管理系統配置
apps.py
- 應用的配置文件
models.py
- 數據模塊
- 使用ORM框架
tests.py
- 測試腳本
views.py
- 執行響應代碼所在模塊
- 代碼邏輯處理的主要地點
- 主要寫代碼的地方
創建頁面
編輯blog.views
- 每個響應對應一個參數,函數必須返回一個響應
- 函數必須存在一個參數,一般約定為request
- 每個響應(函數)對應一個URL
配置URL
編輯urls.py
- 每個URL都以url形式寫出
- url函數放在urlpatterns列表中
- url函數的參數根據提示寫,一般常用為三個:URL、對應方法、名稱
包含其他URL - 在根urls.py中引入include
- 在app目錄下創建urls.py文件,根式與根urls.py相同
- 根urls.py中url函數第二個參數改為include(YourAppName.urls')
配置Templates
Templates介紹
- 一種HTML文件
- 使用了Django模板語言(DTL)
- 可以使用第三方模板(修改setting.py中TEMPLATE選項的BACKEND)
配置過程
- 在APP目錄下創建Templates目錄
- 在該目錄下創建HTML文件
- 在views.py中返回render()
DTL的使用
- render()函數中支持一個dict類型參數
- 該字典是後臺傳遞到模板的參數,鍵為參數名
- 在模板中使用{{參數名}}來直接使用
註意:
Django是按照INSTALLED_APPS中添加順序查找Templates
因此不同APP下Templates目錄中的同名html文件會造成衝突。
所以需要在APP的Templates目錄下創建以APP名為名稱的目錄
將html文件放入新創建的目錄下麵
Models
Models介紹
- 一個Model對應資料庫的一張數據表
- Django中Models以類的形式表現,包含一些基本欄位和數據的一些行為
ORM(對象關係映射)
- 實現了對象和資料庫之間的映射
- 隱藏了數據訪問的細節,不需要編寫SQL語句
步驟
- 在應用根目錄下創建models.py,並引入models模塊
- 創建類,繼承models.Model,即類是一張數據表
- 在類中創建欄位
欄位創建
- 欄位即類裡面的屬性(變數)
attr = models.CharField(max_length=64)
生成數據表
- 在命令行中執行命令
python manage.py makemigrations YourAppName(可選)
- 再次執行
python manage.py migrate
查看移植內容
- app/migrations/ 下會有移植文件
- 查看sql語句,執行
python manage.py sqlmigrate YourAppName FileId
- 查看並編輯bd.sqlite3
可以使用第三方軟體 SQLite Expert Personal
頁面呈現數據
- views.py中import models
- 輸入
value = models.Article.objexts.get(pk=1)
render(request,page,{'article':value})
- 在html文檔可以直接使用對象以及對象的“.”操作
article.title
(未完待續)