sqlite数据库的使用总结

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')

猜你喜欢

转载自blog.csdn.net/HobbitX/article/details/87991157
今日推荐