003:模板載入和資料庫定義
模板:
1、開啟所有的頁面,查詢共同之處
2、保留一致的部分,生成模板頁(base.html)
{% block name %}{% endblock %} 塊標籤
一致的保留,不一致(需要修改的)生成塊
塊當中保留的內容是預設內容,可以使用,可以覆蓋
3、使用模板頁
首先宣告繼承那個模板 {% extends “base.html”%}
填充需要修改的塊內容
{% include %} 模板載入
將指定的頁面載入到當前頁面指定部分,一般用於資料管理的平臺型網站
2-3 Django資料庫定義
本章知識點
- 網站開發建模
- Django模型處理
- Django自帶模組 admin
- Admin管理和樣式渲染
知識點講解 - 網站開發建模
昨天的課程當中,已經學習了Django基本的請求,基於MVC來說,學習了V和C部分, 緊 接著要學習的就是Django的模型部分。首先要搞明白的是資料建模。
所謂的資料建模就是利用資料庫語句來描述我們的業務邏輯。描述將會被分為兩個部分:
1、業務實體的描述
2、業務關係的描述
舉個例子:
我們現在要對班級的同學和老師進行資料建模
首先,我們會考慮的是老師和同學這兩個主題,所以,我們會搭建出以下的表:
Teacher
Name
Age
Project
Student
Name
Age
Project
Result
這兩章表雖然將所有內容都包含進去了,但是沒有強調到老師和學生的關係,那麼接下來就需 要在student表新增一個叫做teacher_id的欄位,來關聯學生,效果如下:
Teacher
Name
Age
Project
Student
Name
Age
Project
Result
Teacher_id
所以我們最後得到的就是這樣的一個效果了,我們通過這個表可以描述簡單的師生情況與關 系,在這裡必須強調,好的建模是成功的一半
接著來了解一下Python資料庫部分的一個高階的知識點,ORM
ORM被稱為資料庫對映關係,回憶之前寫過的一段程式碼。
import pymysql
db = pymysql.connect(
user = “root”,
password = “123”,
db = “students”,
port = “3306”
)
cursor = db.cursor()
sql = “select * from cursor”
cursor.execute(sql)
all_data = cursor.fetchall()
print(all_data)
cursor.close()
db.close()
上面的程式碼當中,Python可以通過pymysql模組訪問到mysql資料庫,並且獲取資料,大概思路如下:
這樣可以很直觀的看到資料庫存取資料的效果,但從另外的一個角度來看也是有問題的。比如:
1、開發必須要懂MySQL
2、如果要切換資料庫就必須修改所有的資料庫語句
所以,有了Python ORM資料庫對映的需求,然後有了功能
也就是說,在操作資料庫的時候,開發人員不直接接觸資料庫語句,而是選擇用Python描述資料庫,然後將描述傳遞給ORM,ORM將描述翻譯為sql語句傳遞給MySQL進行執行。這樣一來上面的問題迎刃而解。而Django就是採用ORM對映來處理資料庫。
2. Django模型處理
Django本身是鼓勵開發者進行相對獨立的專案開發的,所以,Django的設計理念當中有一個關 鍵的元素,叫做app,所謂的app就是專案當中具體的功能。比如:
我們開發一個商場的專案
可以將整個網站劃分為
商品
使用者
商家
三個獨立的功能進行開發,這樣可以讓我們的思路更加清晰,同時,也方便我們的功能塊兒的 遷移。那麼接下來開始學習Django 模型部分的知識,Django模型的使用通常按照以下的思路學 習。
1、建立app
切入伺服器目錄
執行app建立命令
命令: python manage.py startapp shopping
2、定義資料庫模型
首先看一段常用的程式碼
from django.db import models
class Shopping(models.Model): #模型類名
name = models.CharField(verbose_name = “商品名稱”)
price = models.FloatField(verbose_name = “商品價格”)
shops = models.CharField(verbose_name = “商鋪”)
picture = models.ImageField(verbose_name = “商品圖片”)
def __str__(self):
return self.name
欄位型別
IntegerField(Field) 整數
CharField(Field) 字串
EmailField(CharField) 郵件
IPAddressField(Field) ipv4協議
FileField(Field) 檔案
ImageField(FileField) 圖片
DateTimeField(DateField) 時間 年月日 時分秒
DateField(DateTimeCheckMixin, Field) 年月日
TimeField(DateTimeCheckMixin, Field) 時分秒
1、啟動虛擬環境
2、建立專案
3、建立APP
切入專案目錄,在manage.py的目錄下,執行建立命令
然後完成了專案的基本建立
新增static和template目錄
4、資料建模
5、進行配置
安裝app
配置HTML檔案路徑
配置資料庫
預設Django採用sqllite3資料庫
通常會使用mysql
6、同步資料庫
1、校驗
Python manage.py check
注意:python3採用的是pyMySQL(py3)資料庫api,但是Django預設的是MySQLdb(py2)模組,所以需要做以下修改
2、生成資料庫
python manage.py makemigrations
3、進行資料庫同步
Django 2版本之前預設建立後臺超級使用者,2.0之後,我們需要藉助命令
Django模型處理
Django自帶模組 admin
Admin管理和樣式渲染