1. Create a model class:
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. Register in 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. Synchronize the database:
python manage.py makemigrations
python manage.py migrate
4. Create a super user:
python manage.py createsuperuser
5. Change the English page of the webpage to Chinese page
6.orm
One-to-one forward query:
def index(request):
#一对一正向查询,查询小白的学科
student_obj=models.Student.objects.get(name='小白')#获取小白对象
# print(student_obj)
sub_obj=student_obj.subject#获取小白的学科
# print(sub_obj)
Reverse query:
#反向查询,查询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)
Many-to-many forward query:
#Many-to-many forward query, query the students taught by
Zhang San
teacher_obj=models.Teacher.objects.get( name="Zhang San") teacher_stu=teacher_obj.student.all()
print(teacher_stu)
Reverse query: #Reverse
query, query how many teachers
Xiao Hei has taught stu_teacher=models.Student.objects.get(name=“小黑”)
stu_tea_list=stu_teacher.teacher_set.all()
print(stu_tea_list)
return render(request,'index.html')