Model模型
模型是你的數據的唯一的、權威的信息源。它包含你所儲存數據的必要字段和行為。
通常,每個模型對應數據庫中唯一的一張表。
- 每個模型都是django.db.models.Model的一個Python 子類。
- 模型的每個屬性都表示為數據庫中的一個字段。
- Django 提供一套自動生成的用于數據庫訪問的API;
- 這極大的減輕了開發人員的工作量,不需要面對因數據庫變更而導致的無效勞
模型與數據庫的關系
模型(Model)負責業務對象和數據庫的關系映射(ORM)
ORM是“對象-關系-映射”的簡稱,主要任務是:
- 根據對象的類型生成表結構
- 將對象、列表的操作,轉換為sql語句
- 將sql查詢到的結果轉換為對象、列表
為什么要用模型?
Model是MVC框架中重要的一部分,主要負責程序中用于處理數據邏輯的部分。通常模型對象負責在數據庫中存取數據
它實現了數據模型與數據庫的解耦,即數據模型的設計不需要依賴于特定的數據庫,通過簡單的配置就可以輕松更換數據庫
配置Mysql數據庫
在當前環境中安裝mysql
sudo apt-get install mysql-serversudo apt install mysql-clientsudo apt install libmysqlclient-dev
在當前python環境中安裝 pymysql
pip3 install pymysql
在mysql中創建數據庫
create databases mydb default charset=utf8
在Django項目中配置數據庫
修改settings.py文件中的DATABASE配置項DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mydb',#選擇數據庫的名,請確認你的mysql中有這個庫'USER': 'root','PASSWORD': '123456','HOST': 'localhost','PORT': '3306',} }
告訴Django在接下來的mysql操作中使用pymysql
打開
mysite/__init__.py
,寫入以下代碼導入pymysql:import pymysql pymysql.install_as_MySQLdb()
開發流程
1. 在models.py中定義模型類,要求繼承自models.Model
from django.db import models# Create your models here.#用戶信息模型 class Users(models.Model):username = models.CharField(max_length=32)password = models.CharField(max_length=32)email = models.CharField(max_length=50)# class Meta:# db_table = "polls_users" # 指定表名
2. 把應用加入settings.py文件的installed_app項
編輯mysite/settings.py文件,并將項目應用文件名添加到該INSTALLED_APPS設置。INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myweb', ]
3.生成遷移文件
python3 manage.py makemigrations
4.執行遷移
python3 manage.py migrate
5.使用模型類進行crud操作