一.创建表
Django自带数据库ORM是基于SQLite,如果使用sqlite则不需要做配置修改,如果需要基于mysql连接则需要做相关配置:
1.在安装好的mysql中创建数据库,注意字符集选择utf8以便支持汉字(ORM不支持创建数据库,只能创建表)
2.在创建的Django项目同名文件夹中 setting.py 配置对于mysql数据库的连接:
1 # 1.将默认的设置注释掉: 2 # DATABASES = { 3 # 'default': { 4 # 'ENGINE': 'django.db.backends.sqlite3', 5 # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 6 # } 7 # } 8 9 # 2.设置对于mysql的连接: 10 DATABASES = { 11 'default': { 12 'ENGINE': 'django.db.backends.mysql', 13 'NAME':'new', #数据库名称 14 'USER': 'root', #用户名 15 'PASSWORD': 'pwd', #密码 16 'HOST': 'localhost', #连接地址,可以不填 17 'PORT': 3306, #端口 18 } 19 }
3.在同层目录下的__init__.py文件导入对应模块:
import pymysql
pymysql.install_as_MySQLdb()
此时基本配置已经完成,接下来进入处理业务代码的app01文件夹下的models.py中进行对ORM的建表操作
1 from django.db import models #导入django ORM对应模块 2 3 # Create your models here. 4 class Class1(models.Model): #继承models模块定制类,即创建表,类名为表明 5 cid = models.AutoField(primary_key=True) #创建主键,AutoField为自增(主键可以不写,不写时默认生成一行名称为ID的主键列) 6 cname = models.CharField(max_length=32) #创建char类型字符串,最大长度32 7 8 class Teacher(models.Model): 9 tid = models.AutoField(primary_key=True) 10 tname = models.CharField(max_length=32) 11 12 class Student(models.Model): 13 sid = models.AutoField(primary_key=True) 14 sname = models.CharField(max_length=32) 15 Class = models.ForeignKey(Class1) #创建外键,括号里面填写外键关系的表名 这个类在生成时,Class列会显示为Class_id即自写的列名加_id 16 17 class Guanxi(models.Model): 18 teacher = models.ForeignKey(Teacher) 19 Class = models.ForeignKey(Class1)