Django models模型
?
一.?所謂Django models模型,是指的對數據庫的抽象模型,models在英文中的意思是模型,模板的意思,在這里的意思是通過models,將數據庫的借口抽象成python自己的一個類。然后在python Django框架其他代碼文件中,可以通過在models代碼文件中抽象出來的數據接口模型板模型類對數據庫進行一系列的其他操作。
二.?Django 對各種數據庫都能提供很好的支持,如mysql,oracle,postgresql,sqlite等,diango為這些數據庫提供了統一的調用API,我們可以根據自己業務需求選擇不同的數據庫。也就是縮django調用封裝好這些數據庫以后,我們對這些數據的操作都是一樣的。
MySQL 是 Web 應用中最常用的數據庫,現在接下來,我們都將以 Mysql 作為例進行測試學習,如果你沒安裝 mysql 驅動,可以執行以下命令安裝:
sudo pip install mysqlclient
數據庫配置:
我們在使用數據庫的時候,需要在項目的 settings.py 文件中找到 DATABASES 配置項,配置一下有關數據的配置文件,使我們的django項目能遠程連接到我們的數據庫。
DATABASES = {
????'default': {
????????'ENGINE':'django.db.backends.mysql', # 或者使用 mysql.connector.django
????????'NAME': 'test',
????????'USER': 'test',
????????'PASSWORD': 'test123',
????????'HOST':'localhost',
????????'PORT':'3306',
????}
}
注:我們這里這里添加了中文注釋,所以你需要在項目的settings.py 文件頭部添加
?# -*- coding: UTF-8 -*-。
接下來在我們的項目中,無論是python項目文件還是html項目文件,只要我們使用中文或者使用中文注釋,都必須在前面加上# -*- coding: UTF-8 -*-,來支持中文顯示。
上面的配置文件中包含了數據庫名稱和用戶的信息,它們與 MySQL 中對應數據庫和用戶的設置相同。Django 根據這一設置,與 MySQL 中相應的數據庫和用戶連接起來。
三.django定義規定,只要我們使用models數據庫模板,就必須創建一個app實例,經測試,如果不啟用實例,models會不起作用而且還會報錯。以后這個待有機會再驗證一下。
因為我們我們服務器暫時沒安裝mysql,django默認使用小型數據庫sqlite,sqlite與mysql數據庫在使用方式上相同,
我們創建一個關于數據庫的模型,因為每個模型都是跟數據庫相對應的,所以我們可以起一個關于數據的名字:
django-admin.py startapp bookmodels
?
?
我們也可以這樣命名bookdb_models,這里我們暫時使用bookmodels命名。
目錄結構如圖所示:
?
添加代碼如下:
# -*- coding: utf-8 -*- ???????????//支持中文
from __future__ import unicode_literals
from django.db import models ?????
class bookdb(models.Model):
????book_id=models.AutoField(primary_key=True)
????book_name = models.CharField(max_length=32)
????pub_date=models.DateField()
????price=models.DecimalField(max_digits=6,decimal_places=2)
????publish=models.CharField(max_length=32)
?
注:只要使用models就必須加入這句話:
from django.db import models ?
意思是從django.db文件中引入models數據庫模板,而django.db文件中封裝了一個models模板類,用來表示和表達數據庫,并通過這models類封裝了數據庫接口,并通過他對數據庫進行操作。
注:models在django里面可以理解為就是數據庫的意思。
而models中的Model,則代表數據庫其中的一個表格模板。我們創建一個表,就需要調用這個Model表格模板。