Django入门教程

前言

第一章: django快速入门

第二章: django MTV架构

第三章: django视图

第四章: django模板

第五章: django模型

第六章: django后台管理系统

第七章: 项目实战-简易的博客系统

第八章:django表单

第九章:django用户认证系统

第十章:django中的会话

第十一章:django安全

第十二章:django性能优化

第十三章:django实用工具

首页 > Django入门教程 > 第六章: django后台管理系统 > 6.1节: django后台基础

6.1节: django后台基础

薯条老师 2020-08-13 08:13:19 236344 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

6.1.1 django后台管理系统

5.3节的内容中,我们使用了django内置的后台管理系统来进行数据库的操作。后台管理系统提供的只是一套管理界面,其实质依然是通过django中的模型与数据库进行交互,所以在操作数据库之前,需要先在后台管理系统中进行模型注册,注册模型以后,django会自动地生成django模型的管理模块。

web站点的用户通常分为普通用户和管理员用户,普通用户可以进行页面的浏览,但无权限对后台的数据库进行操作。在进入后台管理系统前,必须先创建一个超级管理员账号,此外django的语言设置默认为英文,时区默认为UTC,我们在使用后台管理系统时有必要先对管理界面进行本地化处理。

在本节的内容中,我们来分别学习这些与django后台相关的基础知识:界面本地化,创建管理员,注册模型类

6.1.2 界面本地化

打开项目目录中是settings.py,找到与语言设置以及时区设置相关的全局变量:

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'

LANGUAGE_CODE变量,其中文含义为语言代码,通过对LANGUAGE_CODE进行赋值,可以修改django后台的语言设置。与中文相关的设置为:zh-hans,直接将LANGUAGE_CODE赋值为zh-hans即可:

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE变量,其中文含义为时区,通过对TIME_ZONE进行赋值,可以修改Django的时区设置。与北京时间相关的设置为:Asia/Shanghai,Asia/Shanghai表示的是上海时区,由于上海时区与北京时区不存在时间差,所以等同于设置为北京时间:

TIME_ZONE = 'Asia/Shanghai'

6.1.3 创建管理员

使用manage.py的子命令createsuperuser来创建管理员。在命令行中执行python manage.py createsuperuser时,会显示如下提示信息:

D:\django-project>python manage.py createsuperuser

用户名:

电子邮件地址:

Password:

Password (again):

用户名一栏填写管理员的登录名,电子邮件地址填写管理员的邮箱账号,Password以及Password(again)一栏均填写管理员的登录密码,出于安全考虑,django会将填写的密码进行隐藏。

6.1.4 注册模型类

注册模型有两种方法:一是使用admin.site.register方法进行注册,一是使用admin模块中的register装饰器。

使用admin.site.register方法进行注册

通过admin模块进行注册,需要在django应用下的admin.py文件中进行定义。使用admin模块需要从django.contrib中进行导出。在admin.py中进行模型注册的核心流程:

(1) 在admin.py中导出admin模块

(2) 在admin.py中导出需注册的模型

(3) 定义ModelAdmin的子类型(不是必须)

(4) 使用admin.site.register方法进行模型注册

假设需注册的为Blog模型,则admin.py中的代码为:

# 首先导出admin模块
from django.contrib import admin
 
# 然后从models.py中导出Blog模型
from .models import Blog
 
# 接着定义ModelAdmin的子类型
class BlogAdmin(admin.ModelAdmin):
    pass
 
# 最后通过admin.site.register方法进行模型注册
admin.site.register(Blog, BlogAdmin)

在register方法中传递的ModelAdmin子类对象,其作用为在ModelAdmin子类中自定义模型的表现方式。如无需自定义,则代码可简化为:

admin.site.register(Blog)

使用register装饰器进行注册

register装饰器:

register(*models, site=django.admin.sites.site)

在register装饰器中,models是一个可变参数,表示需注册的多个模型。site表示站点管理模块,通常使用其默认值。使用register装饰器进行模型注册的核心流程:

(1) 定义ModelAdmin子类型

(2) 使用admin模块的register装饰器对ModelAdmin子类型进行装饰

假设需注册的为Blog模型,则admin.py中的代码为:

# 首先导出admin模块
from django.contrib import admin
 
# 然后从models.py中导出Blog模型
from .models import Blog
 
# 使用admin.register进行装饰
@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
    pass

6.1.5 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4)
Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:


欢迎 发表评论: