1. 程式人生 > >003:模板載入和資料庫定義

003:模板載入和資料庫定義

模板:
1、開啟所有的頁面,查詢共同之處
2、保留一致的部分,生成模板頁(base.html)
{% block name %}{% endblock %} 塊標籤
一致的保留,不一致(需要修改的)生成塊
塊當中保留的內容是預設內容,可以使用,可以覆蓋
3、使用模板頁
首先宣告繼承那個模板 {% extends “base.html”%}
填充需要修改的塊內容
{% include %} 模板載入
將指定的頁面載入到當前頁面指定部分,一般用於資料管理的平臺型網站

2-3 Django資料庫定義
本章知識點

  1. 網站開發建模
  2. Django模型處理
  3. Django自帶模組 admin
  4. Admin管理和樣式渲染
    知識點講解
  5. 網站開發建模
    昨天的課程當中,已經學習了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管理和樣式渲染