Django3.0+Python3.8+MySQL8.0 个人博客搭建八|通过admin管理后台

Django 中一个最强大的部分是自动管理接口,在模型中读取元数据来提供一个强大的、生产就绪的接口,使内容提供者能立即用它向站点中添加内容,在这篇文档中,我们讨论如何去激活,使用和自定义Django的站点管理接口。

一、创建管理员

我们在浏览器中输入http://127.0.0.1:8000/admin,便可进入到后台管理登录页面,如下图所示:

在这里插入图片描述

此时我们还没有创建管理用户,与创建app一样

(fswy) blog xiatian$ python3 manage.py createsuperuser 

然后按照提示依次输入用户名、邮箱、密码、确认密码,即可创建出管理员用户

用户名: fswy        
电子邮件地址: 420393969@qq.com
Password: xxxxxxx
Password (again): xxxxxxx
Superuser created successfully.

注意:

输入密码时不会显示出来,并且长度必须超过八位才行

登录后台的两种方式

1、终端中再次运行你的服务,输入账号和密码就可以成功登陆了:

(fswy) blog xiatian$ python3 manage.py runserver

2、重新进入http://127.0.0.1:8000/admin

在这里插入图片描述
在这里插入图片描述

二、注册模型到后台

登录后台后,我们看到此时的后台只有用户、组和最近动作,并没有我们之前创建的我的文章、分类、标签这些内容

我们可以在admin.py中进行配置,将其在后台展现出来:

扫描二维码关注公众号,回复: 11155611 查看本文章

blog -> fswy -> admin.py

from django.contrib import admin
from .models import Article, Tag, Category, Carousel, Keyword, FriendLink, BigCategory

# Register your models here.

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    # 这个的作用是给出一个筛选机制,一般按照时间比较好
    date_hierarchy = 'create_date'

    exclude = ('views', )

    # 在查看修改的时候显示的属性,第一个字段带有<a>标签,所以最好放标题
    list_display = ('id', 'title', 'author', 'create_date', 'update_date')

    # 设置需要添加<a>标签的字段
    list_display_links = ('title', )

    # 激活过滤器,这个很有用
    list_filter = ('create_date', 'category')

    # 控制每页显示的对象数量,默认是100
    list_per_page = 50

    # 给多选增加一个左右添加的框
    filter_horizontal = ('tags', 'keywords')

    # ???
    # 限制用户权限,只能看到自己编辑的文章
    def get_queryset(self, request):
        qs = super(ArticleAdmin, self).get_queryset(request)
        if request.user.is_superuser:
            return qs
        return qs.filter(author=request.user)


@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
    list_display = ('name', 'id', 'slug')

@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
    list_display = ('name', 'id', 'slug')

@admin.register(BigCategory)
class BigCategoryAdmin(admin.ModelAdmin):
    list_display = ('name', 'id', 'slug')

# 自定义管理站点的名称和URL标题
admin.site.site_header = '网站管理'
admin.site.site_title = '博客后台管理'

@admin.register(Carousel)
class CarouselAdmin(admin.ModelAdmin):
    list_display = ('number', 'title', 'content', 'img_url', 'url')

@admin.register(Keyword)
class KeywordAdmin(admin.ModelAdmin):
    list_display = ('name', 'id')

@admin.register(FriendLink)
class FriendLinkAdmin(admin.ModelAdmin):
    list_display = ('name', 'description', 'link', 'create_date', 'is_active', 'is_show')
    date_hierarchy = 'create_date'
    list_filter = ('is_active', 'is_show')
    

此时,再次刷新博客admin页面,即可看到我们创建的表:

在这里插入图片描述

我们可以对其进行增加、修改、删除操作。
在这里插入图片描述

现在我们开始写第一篇博客,保存之后,进入到 navicat 中 article 表中,可以看到多出一个数据,这就是我们刚添加的第一篇博客。

是不是很方便呢,admin 也是 Django 中最方便的一个特性了。

推荐学习:DJANGO ADMIN 一些有用的设置

虽然 admin.py 功能还可以但是我不太喜欢,后期会根据自己的习惯重新设计一个发文界面.

原创文章 214 获赞 359 访问量 89万+

猜你喜欢

转载自blog.csdn.net/yxys01/article/details/105810710