django 數據庫配置 ,APP 遷移
#
1.數據庫的連接配置
django 連接mysql的配置流程:
- 安裝 pymysql pip install pymysql
- 創建數據庫用戶
有創建數據庫權限的用戶
- 創建數據庫
crm
1.進入數據庫 mysql -uxxx -p1111 2. create database crm 數據庫創建成功.
- 修改配置
settins
- 修改項目文件夾(和settings.py文件所在的目錄)下
__init__.py 文件
寫上:
import pymysql
pymysql.install_as_MySQLdb()
- 設置時區 TIME_ZONE = ‘Asia/ShangHai‘ # 北京時間
DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘: ‘crm‘, ‘HOST‘: ‘192.168.1.11‘, ‘PORT‘: ‘3306‘, ‘USER‘: ‘user‘, ‘PASSWORD‘: ‘pswd‘ } } TIME_ZONE = ‘Asia/Shanghai‘
2.django的ORM系統
-對象關系映射(Object Relational Mapping,簡稱ORM)!
簡單的說就是用面向對象的方式,描述數據庫,操作數據庫,
達到不用編寫SQL語句就能對數據庫進行增刪改查。
3.模型的創建與激活
創建模型
Student的模型,代表啊學生
總結:
1. 每一個模型都是django.db.models.Model的子類
2. 類變量 表示模型中的數據庫字段
3. 每一個字段由一個字段類的實例表示
from django.db import models # Create your models here. class student(models.Model): name = models.CharField(max_length=20) sex = models.SmallIntegerField(default=0) age = models.SmallIntegerField(default=0) qq= models.CharField(default=‘‘) phone = models.CharField(max_length=20, default=‘‘) c_time = models.DateField(verbose_name=‘當前UTC時間‘, auto_now_add=True)
激活模型
1.在項目中註冊app
# Application definition INSTALLED_APPS = [ ‘student‘, # 註冊 app ‘teatcher‘, ‘django.contrib.admin‘, ‘django.contrib.auth‘, ‘django.contrib.contenttypes‘, ‘django.contrib.sessions‘, ‘django.contrib.messages‘, ‘django.contrib.staticfiles‘, ]
2.運行數據庫遷移命令(一定要在項目根目錄下)
python mange.py makemigrations teacher
告訴django,我們做了哪些數據庫的更改 teacher 是app_name ,不寫為所有app
***在app目錄 下的migrations/生成 0001_initial.py
查看 遷移的sql語句 python manage.py sqlmigrate app_name 0001(0001_inital.py)
遷移
sqlmigrate 從遷移獲取sql語句
--
-- Create model Student
--
CREATE TABLE `teacher_student` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(20) NOT NULL,
`age` smallint NOT NULL,
`sex` smallint NOT NULL,
`qq` varchar(20) NOT NULL,
`phone` varchar(20) NOT NULL,
`c_time` datetime(6) NOT NULL);
COMMIT;
3.運行migrate命令,使遷移生效
python manage.py migrate
mysql 數據庫中創建 了2張表.migrate 和student
*****數據表的修改 ,重復上述二個步驟
# 表名 appname_模型name.lower
# django 自動創建 主鍵ID
4.數據的增刪改查
-工具 djang shell 調試工具
python manage.py shell
- 增 4種方法
新增對象:save()後才生效.
第二個方法,,修改內容同下.
s2.save()
直接新增
student.object.get_or_create(name=‘xxx‘)
有則查,無則直接增
- 查
student.objects.all() 背後的查詢集
查詢集的 切片操作 效果
In [33]: student.objects.get(id=1) Out[33]: <student: 第一條-25> 相當於 sql select * from student where id=1 get 只能 獲取1條,多條時報錯 pk = django 中的 任意表的 主鍵 get 配合 主鍵 操作 student.object.get(pk=1)
修改:
賦值 ,,save()
update 更新
刪除.delete
從數據庫 獲取數據 在views 中
導入 模型,查詢
from student.models import student
student.object.all()
通過context 傳遞給模板.
django 數據庫配置 ,APP 遷移