配置settings.py下的内容
配置子应用跨域和drf框架
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 子应用
'corsheaders', # 跨域
'rest_framework', # drf框架
]
配置INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 配置子组件
'rest_framework', # drf框架
'corsheaders', # 跨域
]
与前端链条
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', # 要注释掉否则前端还要做csrf处理
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware'
]
配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST':'localhost', # 配置主机
'PORT':3306, # 配置端口号
'USER':'root', # 用户名
'PASSWORD':'123', # 数据库密码
'NAME':'day11', # 数据库名
}
}
配置时区和语言
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/ShangHai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
在__init__文件下安装数据库
import pymysql
pymysql.install_as_MySQLdb()
设计两表的模型类
CharField字符串类型+max_length 设置字符串的最大长度ForeignKey 外键
from django.db import models
# Create your models here.
class Teacher(models.Model):
tea_name=models.CharField(max_length=20,verbose_name='老师名字')
class Meta: # 定义元类
verbose_name='教师表' # 在配置文件中显示表的名字
verbose_name_plural=verbose_name # 去掉表后的‘s’复数
db_table='teacher'# 在数据库小黑框的名字
def __str__(self):
return self.tea_name
class Student(models.Model):
stu_name=models.CharField(max_length=20,verbose_name='学生姓名')
score=models.IntegerField(verbose_name='成绩')
sex=models.CharField(max_length=20,verbose_name='性别')
teacher=models.ForeignKey(Teacher,on_delete=models.CASCADE,verbose_name='老师') # Teacher 为主表 on_delete 绑定 .CASCADE 删除主表同时也删除外键表中的数据
class Meta:
verbose_name='学生表' # 在配置文件中显示表的名字
verbose_name_plural=verbose_name # 去掉表后的‘s’复数
db_table='student'# 在数据库小黑框的名字
def __str__(self):
return self.stu_name
生成迁移和执行迁移,创建超级用户
生成迁移文件
python manage.py makemigrations
执行迁移
python manage.py