python+Django 之 后台站点管理

一般来说、站点分为内容发布和公共访问两部分
内容发布的部分由网站管理员负责查看、添加、修改、删除数据,开发这些重复的功能非常的单调乏味,而且还缺乏创造力。
所以,Django根据定义的模型类自动地生成管理模块。

使用django站点管理模块步骤:
(1)管理界面本地化
(2)创建管理员
(3)注册模型类
(4)自定义管理页面。

1、管理界面本地化 :将语言,时间设置为本地的语言时间
   修改 setting.py 

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

 2、创建管理员
    python manage.py createsuperuser
    按照提示输入用户名、邮箱、密码。
    
    启动服务器 :python manage.py runserver 0.0.0.0:8000,然后在浏览器中访问: 127.0.0.1:8000/admin,即可进入登录页面。
    

输入创建管理员时的用户名和密码,登录进入后台管理系统,如下图所示:

此时,该页面没有我们需要管理的类,BookInfo和HeroInfo,,在代码中注册即可。
3、注册模型类
    在model/admin.py 中进行注册,键入以下代码:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from models import *
# Register your models here.

admin.site.register(BookInfo)
admin.site.register(HeroInfo)

注意:每次修改代码后,开发服务器会自动进行重启,无需手动重新启动。

刷新浏览器页面,成功注册BookInfo和HeroInfo,在后台里就可以很轻松的实现管理,极大地提供便利,,管理操作也非常的简单,可在系统里边亲自操作体验。

4、自定义管理页面

下图是我们在增加了一个对象之后的界面,每一个对象都显示的是相同的名字,我们无法直观的看到对象的具体表示神马,所以这就需要我们自定义管理在列表页显示的内容,比如字段、属性等。

实现自定义页面需要在修改admin.py代码为:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from models import *
# Register your models here.


class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['id','title','pub_time']   #添加需要显示的字段


class HeroInfoAdmin(admin.ModelAdmin):
    list_display = ['id','name', 'content', 'gender', 'book']

admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)

刷新浏览器查看BookInfos:显示除了id,title和putime。

在HeroInfos中对象与bookInfo存在多对一的关系,下图红框的地方只显示了book对象,但没有显示具体的book,为解决这一问题,我们需要在model/models.py 的BookInfo类中添加__str__()方法,将对象作为字符串返回:

class BookInfo(models.Model):
    title = models.CharField(max_length=20)
    pub_time = models.DateField()

    def __str__(self):
        return self.title.encode("utf-8")

刷新浏览器:成功显示出了book名。

关于后台管理列表倒序:如果需要进行升序排列,可以点击具体字段,将按照该字段进行排序。

至此,我们使用Django创建superuser,然后借助admin注册相应的模型类,在后台可以轻松实现增删改查管理操作。

python+Django 之使用模型(开始小项目)
python+Django之后台站点管理
python+Django之视图和URL配置
python+Django之使用模板(完成小项目)

猜你喜欢

转载自blog.csdn.net/qq_35965090/article/details/81663941