IT评测·应用市场-qidao123.com技术社区

标题: orm03 [打印本页]

作者: 大连全瓷种植牙齿制作中心    时间: 2025-1-5 01:00
标题: orm03
admin后台管理

什么是admin后台管理

django提供了比较完善的后台数据库的接口,可供开辟过程中调用和测试使用
django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开辟使用

admin配置步骤

创建后台管理账号

该账号为管理后台最高权限账号

  1. $ python3 manage. py createsuperuser
  2. Username (leave blank to use 'root'): zhangsan                # 此处输入用户名
  3. Email address: zhangsan@1234.com                                        # 此处输入邮箱
  4. Password:                                                        # 此处输入密码(密码要复杂些,否则会提示密码太简单)
  5. Password(again):                                        # 再次输入重复密码
  6. Superuser created successfully.
复制代码
测试登录

启动服务后,后台管理的登录地点:http://127.0.0.1:8000/admin,使用刚才注册的管理员账号登录即可
实验:测试admin后台体系


注册自定义模型类


注册步骤


实验:注册模型类





模型管理器类

理解与阐明

作用:为后台管理界面添加便于操作的新功能
阐明:后台管理器类须继承自 Django.contrib.admin 里的 ModelAdmin
使用方法


类属性阐明


实验:绑定模型管理器类


默认自带按字段排序功能
Meta类

在管理页面看见的模型类的名称,可以通过Meta内嵌类来修改。
通过Meta内嵌类定义模型类的属性,用法如下:

实验:修改Meta类属性


练习

需求:对 Author 模型管理类的自定义设置

  1. 修改bookstore 应用下的 admin.py 文件
  2. from django.contrib import admin
  3. from .models import Book,Author
  4. # 定义一个模型管理类
  5. class BookManager(admin.ModelAdmin):    # 后台管理器类须继承自Django.contrib.admin里的ModelAdmin类
  6.     # 列表页显示哪些字段的列
  7.     list_display = ["id", "title", "price", "market_price", "pub"]
  8.     # 控制 list_display 中的字段,哪些可以链接到修改页,缺省默认首列
  9.     list_display_links = ["title"]   # 点击书名,可以进入该条数据的修改页面
  10.     # list_display_links = ["title", "price"]   # 点击书名列或价格列,可以进入该条数据的修改页面
  11.     # 添加过滤器
  12.     list_filter = ["pub"]        # 以出版社列给出过滤项
  13.     # 添加搜索框[模糊查询]
  14.     search_fields = ["title"]    # 搜索框模糊匹配标题列
  15.     # search_fields = ["title", "pub"]  # 搜索框模糊匹配书名列或出版社列
  16.     # 添加可直接在列表编辑的字段(不必进入修改页面)
  17.     list_editable = ["price"]
  18. class AuthorManager(admin.ModelAdmin):
  19.     list_display = ["id", "name", "age"]
  20.     list_display_links = ["name"]
  21. admin.site.register(Book, BookManager)  # 将模型管理器类和模型类进行绑定
  22. admin.site.register(Author, AuthorManager)  # 将模型管理器类和模型类进行绑定
复制代码
  1. 修改 bookstore 应用下的 admin.py 文件,修改 Author 模型类
  2. from django.db import models
  3. class Author(models.Model):
  4.     ...
  5.     class Meta:
  6.         db_table = "author"
  7.         verbose_name = "作者"  # 修改单数显示
  8.         verbose_name_plural = verbose_name  # 修改复数显示,缺省默认单数显示+s
复制代码
总结


用户管理




关系映射

什么是关系映射

在关系型数据库中,通常不会把所有数据都放在同一张表中,不易于扩展,常见关系映射有:

一对一映射 models.OneToOneField()

概念与理解


特殊字段选项【必须】

on_delete:级联删除


创建模型类



添加数据


查询数据

正向查询


反向查询

没有外键属性的一方,可以调用反向属性查询关联的另一方

实验:一对一模型


一对一映射关系总结


一对多映射 models.ForeignKey()

概念与理解


创建模型类


添加数据


查询数据


实验:一对多模型


多对多映射 models.ManyToManyField()

概念与理解


创建模型类

用法示例:

添加数据


数据查询

**正向查询:**有多对多属性的对象查另一方

反向查询:

实验:多对多模型


Cookies 和 Session

会话概念


Cookies

Cookies 定义

cookies 是保存在客户端浏览器上的存储空间
Cookie 使用场景

在讲cookie前先了解下它的使用场景

Cookies 特点


Django 中的 cookie




实验:Cookies 操作


Session

Session概念

session 是在服务器上开辟了一段用于保存浏览器和服务器交互时的紧张数据
实现方式



在 Django 中的配置


向 INSTALLED_APPS 列表中添加

向 MIDDLEWARE 列表中添加

session的使用


实验:Session 操作


  1. select * from django_session;
  2. 执行 `del request.session['KEY']` 删除session,但只是让数据过期失效,实际上数据库里的数据没有被删除
  3. django_session 表是单表设计;且该表数据量持续增加
  4. - 可以定期执行 **python3 manage.py clearsessions**
  5. - 该命令可删除已过期的 session 数据
复制代码
settings.py 中相关配置项以及注意事项


Cookie和Session的对比



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4