1.创建模型类:
from django.db import models
#Create your models here.
class Subject(models.Model):
name=models.CharField(max_length=32)
price=models.IntegerField()
def __str__(self):
return '{}--{}'.format(self.name,self.price)
class Student(models.Model):
name=models.CharField(max_length=32)
age=models.IntegerField()
phone=models.CharField(max_length=32)
subject=models.ForeignKey(to='Subject',on_delete=True)
def __str__(self):
return '{}--{}'.format(self.name,self.age)
class Teacher(models.Model):
name=models.CharField(max_length=32)
age=models.IntegerField()
phone=models.CharField(max_length=32)
salary=models.CharField(max_length=32)
student=models.ManyToManyField(to='Student')
def __str__(self):
return '{}--{}'.format(self.name,self.age)
2.在admin中注册:
from django.contrib import admin
from app01.models import Student,Teacher,Subject
#Register your models here.
admin.site.register(Student)
admin.site.register(Teacher)
admin.site.register(Subject)
3.同步数据库:
python manage.py makemigrations
python manage.py migrate
4.创建超级用户:
python manage.py createsuperuser
5.把网页英文页面改成中文页面
6.orm
一对一正向查询:
def index(request):
#一对一正向查询,查询小白的学科
student_obj=models.Student.objects.get(name='小白')#获取小白对象
# print(student_obj)
sub_obj=student_obj.subject#获取小白的学科
# print(sub_obj)
反向查询:
#反向查询,查询python学科对应的学生
python_obj = models.Subject.objects.get(name='python')
python_list = models.Subject.objects.filter(name='python')[0]#filter返回的是列表
student_lst=python_obj.student_set.all()
# print(student_lst)
# print(python_obj)
# print(python_list)
多对多正向查询:
#多对多正向查询,查询张三教过的学生
teacher_obj=models.Teacher.objects.get(name=“张三”)
teacher_stu=teacher_obj.student.all()
print(teacher_stu)
反向查询:
#反向查询,查询小黑被多少老师教过
stu_teacher=models.Student.objects.get(name=“小黑”)
stu_tea_list=stu_teacher.teacher_set.all()
print(stu_tea_list)
return render(request,'index.html')