所谓对象关系映射,就是将数据库的一些名字与python中的一些名字相对应,表名-->类名,字段-->属性,操作(增删改查)-->方法。这样,我们就可以通过对Python代码的编辑来对数据库进行操作。
流程:创建models,通过models创建迁移文件(makemigrations),通过迁移文件映射到数据库中。
book/models.py
from django.db import models # Create your models here. class Student(models.Model): 字段映射,数据库中是male,female,后台显示的是男,女 choices={ ('male',"男"),(female女'创建数据库中的字段 name=models.CharField(verbose_name=姓名True) age=models.CharField(verbose_name=年龄) gender=models.CharField(verbose_name=性别) is_deleted=models.BooleanField(default=False) introduce=models.TextField() def __str__(self): return self.name Meta: verbose_name_plural='新闻' verbose_name="新闻列表" 修改排列的顺序,这句是靠id从大到小排序 ordering=[-id] db_table = student'
book/admin.py
from django.contrib admin from .models Student Register your models here. 在后台显示相关信息 StudentAdmin(admin.ModelAdmin): list_display = [idnameagegenderis_deletedintroduce] 将模型进行注册 admin.site.register(Student,StudentAdmin)
有了这两个,输入:
python manage.py makemigrations
python manage.py migrate
会在migrations下生成一个文件:
具体内容如下:
migrations,models Migration(migrations.Migration): dependencies = [ (book0001_initial [ migrations.CreateModel( name=Student,fields=[ (ID)),models.CharField(max_length=20,unique=True,models.CharField(max_length=10,models.CharField(choices=[('),(femal')],models.BooleanField(default=False)),models.TextField()),],),migrations.DeleteModel( name=Articles点击students,会有相应表的信息:
最后,我们将数据库里面的内容传到前台页面:
book/views.py
Student from django.shortcuts render def index(request): student_list=Student.objects.all() context={ students:student_list,1)">return render(request,1)">index.html",context=context)index.html
<!DOCTYPE html> <html lang=en"> <head> <meta charset=UTF-8"> <title>{{title}}</title> <link rel=stylesheet" href={% static css/index.css' %}> </head> <body> {% include header.html'%} <div class=content"> <h1>这是主界面</h1> {% for student in students %} {{student.id}} {{student.name}} {% endfor %} <!--{% block content %}--> <!--{% endblock %}--> </div>footer.html} </body> </html>最终效果: