通过ORM创建数据库链接
第一步:
手动创建数据库
第二步:
配置数据库(告诉Django链接到那个数据库)
在settings.py文件里边进行配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'mysite', #数据库的库名 'USER':'root', #用户名 'PASSWORD':'123456', 'HOST':'127.0.0.1', #mysql数据库的IP 'PORT':3306, #mysql数据库的端口 } }
第三步:
在models.py文件中创建一个类
from django.db import models # Create your models here. # 创建User类(数据表) class User(models.Model): id = models.AutoField(primary_key=True) #自增 并设为主键 username = models.CharField(max_length=64) #设置变长 以及长度 age = models.IntegerField() #设置整数型 def __str__(self): return self.username class Meta: db_table = "user" #创建Book类 class Book(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=64,null=True) price = models.IntegerField() class Meta: db_table = "book"
from django.db import models # Create your models here. # 创建了一个类(类名为Class) class Class(models.Model): # 设置一个ID属性 对应的是数据库里边的ID字段 id = models.AutoField(primary_key=True) # 设置一个属性 对应的是数据库里边的字段 cname = models.CharField(max_length=32) # 第一步 类和属性创建完成后执行makemigrations, makemigrations作为创建数据库表的登记 # 第二步 migrate 完成数据库表的创建 def __str__(self): self.cname #这个__str__的作用是美化打印出来的结果,使人类更方便查看。看下面例子,如果没有__st__方法,打印的结果是<__main__.Test object at 0x0000022D6D1387B8>格式,
#有了__str__方法后,打印时会按照__str__定义的格式来打印,打印结果为Name:xiaoming。
# 学生列表开始 class Student(models.Model): id = models.AutoField(primary_key=True) sname = models.CharField(max_length=16) # 通过外键来实现夸表查询 cid = models.ForeignKey(to="Class",to_field="id",related_name="students",on_delete=models.CASCADE) # 通过ORM内置语法把学生列表跟详细列表做一对一关联 detail = models.OneToOneField("StudentDetail",null=True,on_delete=models.CASCADE) #新建一个学生详细信息 class StudentDetail(models.Model): height = models.PositiveIntegerField() email = models.EmailField() memo = models.CharField(max_length=128,null=True)
第四步:
告诉Django用pymysql代替默认的MySQLdb:
在主项目的__int__.py进行操作
# 引入pymysql import pymysql # 用mysql作为我们的主数据库 pymysql.install_as_MySQLdb()
第五步:
发命令:
第一步 类和属性创建完成后执行makemigrations, makemigrations作为创建数据库表的登记
第二步 migrate 完成数据库表的创建
总结
五个步骤,四部分
models.py --> Django翻译 -->pymysql -->MySQL (四部分)