django-模型之(ORM)对象关系映射一

所谓对象关系映射,就是将数据库的一些名字与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>

最终效果:

 

相关文章

注:所有源代码均实测运行过。所有源代码均已上传CSDN,请有...
继承APIView和ViewSetMixin;作用也与APIView基本类似,提供...
一、Django介绍Python下有许多款不同的 Web 框架。Django是重...
本文从nginx快速掌握到使用,gunicorn快速掌握到使用,实现小...
uniapp微信小程序订阅消息发送服务通知
Django终端打印SQL语句 1 Setting配置: 2 默认python 使用的...