Admin站点

假设我们要设计一个新闻网站,我们需要编写展示给用户的页面,网页上展示的新闻信息是从哪里来的呢?是从数据库中查找到新闻的信息,然后把它展示在页面上。但是我们的网站上的新闻每天都要更新,这就意味着对数据库的增、删、改、查操作,那么我们需要每天写sql语句操作数据库吗? 如果这样的话,是不是非常繁琐,所以我们可以设计一个页面,通过对这个页面的操作来实现对新闻数据库的增删改查操作。那么问题来了,老板说我们需要在建立一个新网站,是不是还要设计一个页面来实现对新网站数据库的增删改查操作,但是这样的页面具有一个很大的重复性,那有没有一种方法能够让我们很快的生成管理数据库表的页面呢?有,那就是我们接下来要给大家讲的Django的后台管理。Django能够根据定义的模型类自动地生成管理页面。

使用Django的管理模块,需要按照如下步骤操作:

管理界面本地化

创建管理员

注册模型类

自定义管理页面

1 管理界面本地化

在settings.py中设置语言和时区

LANGUAGE_CODE ='zh-hans'# 使用中国语言TIME_ZONE ='Asia/Shanghai'# 使用中国上海时间

2 创建超级管理员

创建管理员的命令如下,按提示输入用户名、邮箱、密码。

python manage.py createsuperuser


打开浏览器,在地址栏中输入如下地址后回车。

http://127.0.0.1:8000/admin/

输入前面创建的用户名、密码完成登录。

登录成功后界面如下,但是并没有我们自己应用模型的入口,接下来进行第三步操作。

如果想要修改密码可以执行

python manage.py changepassword 用户名

3 App应用配置

在每个应用目录中都包含了apps.py文件,用于保存该应用的相关信息。

在创建应用时,Django会向apps.py文件中写入一个该应用的配置类,如

fromdjango.appsimportAppConfigclassBooktestConfig(AppConfig):name ='booktest'

我们将此类添加到工程settings.py中的INSTALLED_APPS列表中,表明注册安装具备此配置属性的应用。

AppConfig.name 属性表示这个配置类是加载到哪个应用的,每个配置类必须包含此属性,默认自动生成。

AppConfig.verbose_name 属性用于设置该应用的直观可读的名字,此名字在Django提供的Admin管理站点中会显示,如

fromdjango.appsimportAppConfigclassBooktestConfig(AppConfig):name ='booktest'verbose_name ='图书管理'

4 注册模型类

登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理中看到,并进行增删改查操作。

打开booktest/admin.py文件,编写如下代码:

fromdjango.contribimportadminfrombooktest.modelsimportBookInfo,HeroInfoadmin.site.register(BookInfo)admin.site.register(HeroInfo)


到浏览器中刷新页面,可以看到模型类BookInfo和HeroInfo的管理了。


点击类名称"BookInfo"(图书)可以进入列表页,默认只有一列。

在列表页中点击"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。


在列表页中点击某行的第一列可以进入修改页。

按照提示进行内容的修改,修改成功后进入列表页。在修改页点击“删除”可以删除一项。

删除:在列表页勾选想要删除的复选框,可以删除多项。


点击执行后进入确认页面,删除后回来列表页面。

5 定义与使用Admin管理类

Django提供的Admin站点的展示效果可以通过自定义ModelAdmin类来进行控制。

定义管理类需要继承自admin.ModelAdmin类,如下

fromdjango.contribimportadminclassBookInfoAdmin(admin.ModelAdmin):pass

使用管理类有两种方式:

注册参数

admin.site.register(BookInfo,BookInfoAdmin)

装饰器

@admin.register(BookInfo)classBookInfoAdmin(admin.ModelAdmin):pass

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数据库设置 1. Django默认是使用sqlite,如果您希望使用另一个数据库,安装适当的数据库绑定,并在数据库...
    Mlotjve阅读 3,169评论 0 0
  • 内容发布的部分由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造力的工作,为...
    錦魚阅读 3,863评论 0 0
  • 我们将继续使用web-poll 应用程序,并将专注于自定义Django的自动生成的管理站点, 自定义管理表单 通过...
    Mlotjve阅读 4,023评论 0 2
  • admin 内容发布的部分由网站的管理员负责查看、添加、修改、删除数据,开发这些重复的功能是一件单调乏味、缺乏创造...
    现实里的童话xklss阅读 5,081评论 0 0
  • Admin 站点管理 用处 :提供数据库管理功能:基于admin模块,可以实现类似数据库客户端的功能,对数据进行增...
    daley_磊阅读 2,481评论 0 1

友情链接更多精彩内容