linRichielinRichie
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
    • Python学习指南
  • 快速开始

    • Python: 输入与输出 (I/O)
    • Python: 异常处理 try-except
    • Python: List深入概述
    • Python: 面向对象编程(OOP)
  • Python 语法库函数

    • 语法库目录
    • 库

      • library目录
      • argparse:解析命令行参数
      • difflib:比较序列并生成差异信息
      • dnspython: DNS处理库
      • IPy:IP地址处理库
      • logging:记录和管理日志信息
      • os:访问和操作操作系统
      • psutil:系统性能信息库
      • re:正则表达式库
      • smtplib:邮件发送库
    • 函数

      • function目录
      • any() 函数
      • input 函数
      • lambda 和 map 函数
      • reversed()函数
      • zip()函数
    • 语句

      • statement目录
      • import 语句
      • Try/Exception 异常
    • 概念

      • concept目录
      • 深拷贝与浅拷贝
      • 列表、字典与元组
      • 文件读写
      • IO: 输入与输出
      • 逻辑判断与条件语句
      • OOP 面向对象:class
      • OOP: 面向对象编程
  • SQLAlchemy

    • 获取insert或者update的id
  • Pandas

    • Pandas目录
    • Pandas:基础操作
    • Pandas:数据处理与转换
    • Pandas: 数据写入 excel 表格
  • Python前端框架

    • Flask

      • 1. Flask简介
      • 2. Flask程序基本结构
      • 3. Flask请求-响应循环
      • 4. flask案例: 框架网页查询IP
      • Python: Flask中的GitHub OAuth
    • Django

      • chapter-01:Django框架认识

        • 1.1 Django的产生背景
        • 1.2 MTV设计模式
        • 1.3 Django 主要功能模块
      • chapter-02:开发环境配置

        • 2.1 Python的安装与配置
        • 2.2 虚拟环境安装与配置
        • 2.3 Django安装与配置
        • 2.4 MySQL安装配置
      • chapter-03:项目框架搭建

        • 3.1 Django管理工具-创建项目骨架
        • 3.2 修改项目的默认配置
        • 3.3 初始化项目环境
      • chapter-04:ORM应用与原理剖析

        • 4.1 构建POST应用需要的数据集
        • 4.2 Model相关的概念和使用方法
        • 4.3 Model的查询操作API
        • 4.4 ORM实现原理
      • chapter-05:Django管理后台

        • 5.1 将Model注册到管理后台
        • 5.2 管理后台实现原理
      • chapter-06:视图

        • 6.1 视图基础
        • 6.2 视图的高级特性和快捷方法
        • 6.3 基于类的通用视图
      • chapter-07:模板系统

        • 7.1 模板系统基础
        • 7.2 模板语言
      • chapter-08:表单系统

        • 8.2 使用表单系统实现表单: ModelForm
      • chapter-09:用户认证系统

        • 9.1 用户与身份认证
        • 9.2 权限管理
        • 9.3 用户认证系统应用
      • chapter-10:Django路由系统

        • 10.1 路由系统基础
      • chapter-11:Django中间件

        • 11.1 中间件基础
  • Python例子

    • Python: Linux的Shell命令
    • Python: PEP8自动格式化代码
    • Python: pip操作
    • Python: 业务服务监控
    • Python: 从文件逐行读取数据
    • 将链表转换为字符串
    • Python: 检查URL是否能正常访问
    • Python: 爬取网易云音乐
    • Python: 读取目录下的所有内容
    • 案例研究:文本统计
  • Python爬虫

    • 数据解析工具:Xpath
  • 算法题

    • 02:两数相加
    • 09:回文数
    • 13:罗马数值转换为整数
    • 14:最长公共前缀

5.1 将Model注册到管理后台

  • 5.1 将Model注册到管理后台
    • 5.1.1 启用管理后台的准备工作
      • 1. settings.py文件中的配置
      • 2. 应用数据库迁移
      • 3.创建用户并授予访问权限
    • 5.1.2 实现Model的注册
      • 1. 在admin.py文件中声明
      • 2. 设置管理后台的路由

5.1.1 启用管理后台的准备工作

Django提供的管理后台位于 django.contrib.admin包中。查看目录结果可以了解也是一个应用,是Django框架内置的应用
启动管理后台(Admin),需要做一些准备工作

1. settings.py文件中的配置

Django项目在启动的时候会根据settings.py文件中定义的INSTALLED_APPS加载应用,由于Admin也是一个应用,所以,想要使用它就需要把django.contrib.admin加入INSTALLED_APPS中。添加Admin应用是Django的默认行为,这一步在创建项目生成目录结构的时候就已经完成了
Admin应用有四个依赖应用,它们都位于django.contrib包中,所以,同样需要将它们加入INSTALLED_APPS中。

  • django.contrib.auth:用户与权限认证应用

  • django.contrib.contenttypes:对Model提供更高层次抽象接口的应用,同时auth应用也需要依赖它

  • django.contrib.sessions:保存用户状态的会话应用

  • django.contrib.messages:消息应用

    上面的四个应用默认会在创建项目的时候自动添加,不需要额外配置

有些应用需要与中间件配合,所以需要在MIDDLEWARE中加入需要的中间件

  • django.contrib.sessions.middleware.SessionMiddleware:实现会话应用的会话中间件

  • django.middleware.common.CommonMiddleware:对URL执行重写的中间件

  • django.contrib.auth.middleware.AuthenticationMiddleware:验证用户身份的认证中间件

  • django.contrib.messages.middleware.MessageMiddleware:用来支持消息应用的中间件。

    上面的中间件也是自动添加的

需要注意:中间件的顺序非常重要,改变其定义的顺序可能会导致应用不可用

TEMPLATES是关于模板相关的配置,要使用管理后台,需要在DjangoTemplates后端的context_processors(上下文处理器)选项中添加。

  • django.contrib.auth.context_processors.auth:用来在模板中访问用户和权限的上下文处理器

  • django.contrib.messages.context_processors.messages:用来支持消息应用的上下文处理器

    模板的配置同样是由Django来完成的,所以,不需要对这里进行改动

2. 应用数据库迁移

使用Django提供的数据库迁移命令创建各个应用定义的数据表。这在创建项目的时候已经完成了,所以,不需要重复操作

3.创建用户并授予访问权限

在管理后台中可以实现对Model实例对象的增加、删除和修改,这是非常简单且方便的,但同时这又是非常危险的,不应该每个用户都有这样的权限。由于还没有介绍Django内置的权限认证系统,因此这里只需要知道“超级用户”拥有所有的权限。在之前创建项目的内容中,使用了manage的createsuperuser命令创建名称为admin的超级用户,接下来就以这个用户登录管理后台并对Model进行操作。至此,启用管理后台功能的准备工作就已经结束了。这些都是Django的默认配置项,不需要做任何修改。如果没有特殊的要求或限制,应该遵循Django的建议,开启后台管理功能。

5.1.2 实现Model的注册

在创建一个app的时候,会定义Topic和Comment两个Model,现在,将它们注册到管理后台
注册Model的方法

1. 在admin.py文件中声明

  • 把自定义的Model注册到管理后台就是要告诉Django哪些Model需要显示出来,即声明它们
  • 使用 manage 的startapp命令在创建post应用的时候会自动创建admin.py文件,要把自定义的Model注册到管理后台需要在admin.py文件中声明
from django.contrib import admin
from post.models import Topic, Comment
admin.site.register([Topic, Comment])

2. 设置管理后台的路由

Django项目的路由配置由settings.py文件的ROOT_URLCONF变量指定,对应于my_bbs项目就是my_bbs/urls.py文件

默认情况下Django会在Model的名字后面加上字母s显示。如果要自定义这个名称,可以在Model的Meta中声明

class Topic(BaseModel):
  class Meta:
    verbose_name = u'话题'
    verbose_name_plural = u'话题'

class Comment(BaseModel):
  class Meta:
    verbose_name = u'话题评论'
    verbose_name_plural = u'话题评论'

对管理后台的操作比较简单,略过

最近更新时间:
Next
5.2 管理后台实现原理