通过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 (四部分)