一、数据库连接
1.数据库的连接配置
django 连接mysql的配置流程: - 安装 pymysql pip install pymysql (1) 数据库用户 有创建数据库权限的用户 (2) 创建数据库 - 修改配置 settins.在settings.py中配置DATABASES
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'mydb', #数据库名称 'USER': 'admin', # 链接数据库的用户名 'PASSWORD': 'Root110qwe', # 链接数据库的密码 'HOST': '127.0.0.1', # mysql服务器的域名和ip地址 'PORT': '3306', # mysql的一个端口号,默认是3306 }}
- 修改项目文件夹(和settings.py文件所在的目录)下
__init__.py 文件 写上:
import pymysqlpymysql.install_as_MySQLdb()
- 设置时区 TIME_ZONE = 'Asia/ShangHai' # 北京时间 二.django的ORM系统 -对象关系映射(Object Relational Mapping,简称ORM)! 简单的说就是用面向对象的方式,描述数据库,操作数据库, 达到不用编写SQL语句就能对数据库进行增删改查。
1.ORM概念:对象关系映射(Object Relational Mapping,简称ORM)
2.ORM的优势:不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。
三.模型的创建与激活
创建模型 Student的模型,代表啊学生from django.db import models# Create your models here.class Student(models.Model): name = models.CharField(max_length=20) age = models.SmallIntegerField(default=0) sex = models.SmallIntegerField(default=1) qq = models.CharField(max_length=20,unique=True,null=True) phone = models.CharField(max_length=20,unique=True,null=True) c_time = models.DateTimeField(verbose_name='创建时间',auto_now_add=True) grade = models.ForeignKey('Grade',on_delete=models.SET_NULL,null=True) e_time = models.DateTimeField(verbose_name='编辑时间',auto_now=True) is_delete = models.BooleanField(verbose_name='删除标记',default=False)
总结: 1. 每一个模型都是django.db.models.Model的子类 2. 类变量 表示模型中的数据库字段 3. 每一个字段由一个字段类的实例表示激活模型 1.在项目中注册app 2.运行数据库迁移命令(一定要在项目根目录下) python mange.py makemigrations teacher 告诉django,我们做了哪些数据库的更改 迁移 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# 表名 appname_模型name.lower
四.数据的增删改查 -工具 djang shell 调试工具 python manage.py shell - 增 4种方法
#第一种student = Student(name='张三 ',age=18)student.save()#第二种student = Student()student.name = '李四'student.age = 18student.save()#第三种Student.objects.create(name='王五',age=16)#第四种Student.objects.get_or_create(name='赵六',age=17)
- 查
Student.objects.all()Student.objects.filter(name='李四',age='18')Student.objects.get(id=1)
-删
Student.objects.all().delete()Student.objects.filter(name='李四',age='18').delete()Student.objects.get(id=1).delete()
-改
Student.objects.filter(name='李四',age='18').update(name='钱七')student = Student.objects.get(id=1)student.name='王五'student.save()