您好,登录后才能下订单哦!
一 前言
在第(二)节介绍了模型Book的设计,实质就是在models.py里写了一个Book类,定义了变量和元数据,也就是设计数据库里对应的表应该长什么样子。就如前面所说,你可以将定义的模型类理解成数据库的一张表,类的实例对象理解成表中一行数据,类中的变量对应表中字段。Python奉行代码优先的理念,通过定义模型类,实现python代码与数据库操作的解耦,即使Python开发者不会数据库SQL,也能轻松完成数据库操作。
模型类定义完后,如何实现在数据库生成对应的表呢?如何通过Django后台管理模型呢?这就是本节要回答的问题。
二 模型迁移
迁移(migration),是一个将models.py定义的模型类映射到数据库并生成数据表的动作,主要涉及两个命令:
python manage.py makemigrations python manage.py migrate
三 通过Admin后台管理模型
Django的省心之处就是它会基于项目模型创建一套简易的后台管理系统,通过该系统可以方便的对模型进行增删改查,虽然也被很多人诟病,Django太重、集成度太强,但既然有现成的、省事儿的,为啥还要自己造轮子呢?!
进入Admin后台管理的步骤如下:
1. 首次登录,创建一个admin站点用户,命令如下:
python manage.py createsuperuser
根据提示输入用户名、邮箱地址、密码即可。
2. 启动服务器,命令如下:
python manage.py runserver 127.0.0.1:8000
IP:端口根据实际修改,启动后,浏览器访问http://127.0.0.1:8000/admin/,就会看到管理后台界面,如图:
上图中管理后台登录界面的站点名字已经被我从默认的Django Administration改成图书借阅管理系统了,后面会介绍如何改。
3. 在amdin.py中使用admin.site.register()注册模型
from django.contrib import admin from django.contrib.auth.models import Group,User as AdminUser from .models import Book,User,ValidUser # Register your models here. admin.site.register(Book)
注意:
只有注册的模型才会出现在admin后台管理系统。
4. 再次进入管理后台界面,发现模型book已经出现在管理后台,如图:
此时,你可能会发现模型名字怎么变成图书了,还记得在(二)节中设计模型用的verbose_name = '图书'吧,就是这个效果。
四 定制Admin后台
通过上述步骤,已经可以在admin管理后台看到定义的模型了,后台页面显示和布局都是默认的,Django提供了ModelAdmin类实现对模型展示的定制,如下是对BOOK模型进行的简单定制:
@admin.register(Book) class BookAdmin(admin.ModelAdmin): list_display = ('book_name','author_name','total_num','available_num','book_img') #readonly_fields = ('book_name','author_name','total_num','available_num') search_fields = ('book_name','author_name') list_filter = ['available_num'] list_per_page = 10 admin.AdminSite.site_header = '图书借阅管理系统' admin.AdminSite.site_title = '管理后台'
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
开发者交流群:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。