当前位置: 首页 > news >正文

django建站过程(3)定义模型与管理页

定义模型与管理页

    • 定义模型[models.py]
    • 迁移模型
    • 向管理注册模型[admin.py]
      • 注册模型使用Admin.site.register(模型名)
      • 修改Django后台管理的名称
      • 定义管理列表页面
      • 应用名称修改
      • 管理列表添加查询功能
    • django shell
      • 交互式shell会话
    • 认证和授权

定义模型[models.py]

模仿博客形式,模块暂定义【(标题、作者、时间、正文),(主题类型)】

from django.db import models# Create your models here.
class topic(models.Model):'''定义文稿的主题类型'''text=models.CharField(max_length=200)date_added=models.DateTimeField(auto_now_add=True)class Meta:verbose_name='主题类型'		#数据库表的名称显示verbose_name_plural='主题集合'		#数据库表的名称集显示def __str__(self):return self.textclass  documentes(models.Model):'''定义文档的结构'''topic=models.ForeignKey(topic,on_delete=models.CASCADE)title=models.CharField(max_length=30)date_added=models.DateTimeField(auto_now_add=True)author=models.CharField(max_length=20)text=models.TextField()class Meta:verbose_name='文档'		#数据库表的名称显示verbose_name_plural='文档集合'		#数据库表的名称集显示def __str__(self):return self.title

对应后台显示:

image-20231024122329678

迁移模型

对 app_name调用makemigrations(执行Python manage.py makemigrations命令)

让django迁移项目migrate(执行Python manage.py migrate命令)

Python manage.py makemigrations
Python manage.py migrate

image-20231019121839334

在生成的文件0001_initial.py中,可以看到数据库的修改

image-20231019122206923

向管理注册模型[admin.py]

注册模型使用Admin.site.register(模型名)

from django.contrib import adminfrom baseapps.models import topic,documentes# Register your models here.admin.site.register(topic)
admin.site.register(documentes)

进入后台(http://127.0.0.1:8000/admin/),我们可以看到下图

image-20231019122433545

修改Django后台管理的名称

admin.site.site_header = '校园管理系统后台'
admin.site.site_title = '校园管理系统'
admin.site.index_title = '管理首页'

页面显示位置为:

image-20231024110741669

定义管理列表页面

修改类docAdmin

class docAdmin(admin.ModelAdmin):list_display = ('title','author','date_added',)     # ModelAdmin列表页展示的字段名admin.site.register(documentes,docAdmin)   # docAdmin只有注册后才能使用

管理列表页变成:

image-20231024111318655

应用名称修改

  • 修改apps.py文件,添加以下内容:verbose_name=u’名称’
verbose_name = u'文章展示'  # 定义应用的名称
  • 修改__init__.py文件,添加以下内容(也可不添加)
default_app_config = "baseapps.apps.BaseappsConfig"

image-20231024121153235

管理列表添加查询功能

在admin.py对应的类中,添加search_fields = (‘查询对应的字段名’,)

class docAdmin(admin.ModelAdmin):list_display = ('title','author','date_added',)     # ModelAdmin列表页展示的字段名search_fields = ('title','author',)      #添加“标题”与“作者”的查询

image-20231024123023506

django shell

输入一些模拟数据,查看效果

image-20231019123907456

image-20231019123933160

输入两条数据条目后,我们得到

image-20231019124030816

交互式shell会话

python manage.py shell启动一个python解释器,通过它我们导入模型,使用object.all()来获取所有实例,返回的查询集(queryset)。

(schoolapps) E:\djangoProject\schoolapps>python manage.py shell
Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from baseapps.models import topic
>>> topic.objects.all()
<QuerySet [<topic: 资讯>, <topic: 活动>]>
>>> from baseapps.models import documentes
>>> documentes.objects.all()
<QuerySet [<documentes: 开放、选择、信任>, <documentes: 与创新者同行>]>
>>> n=topic.objects.get(id=1)
>>> n.text
'资讯'
>>> n.date_added
datetime.datetime(2023, 10, 19, 4, 15, 5, 840186, tzinfo=datetime.timezone.utc)
>>>

附:每次修改模型后,需要重启shell,才能看到修改的效果,退出快捷键“ctrl+Z”

认证和授权

后台设置用户与组的权限,用户必须设置为工作人员状态才能登录

image-20231024123250837

http://www.lryc.cn/news/207857.html

相关文章:

  • node开发微信群聊机器人第⑤章
  • 如何助力企业出海?未来发展趋势是什么?尽在「云通信」Tech专场
  • 安装虚拟机(VMware)保姆级教程及配置虚拟网络编辑器和安装WindowsServer以及本地访问虚拟机和配置服务器环境
  • 使用Typecho搭建个人博客网站,并内网穿透实现公网访问
  • RabbitMQ (4)
  • 导入Embassy库进行爬虫
  • GoLong的学习之路(十三)语法之标准库 log(日志包)的使用
  • 别处拿来的VUE项目 npm run serve报错
  • Istio 运行错误 failed to update resource with server-side apply for obj 问题解决
  • 分布式事务(Seata)——Seata分布式事务XA模式、AT模式、TCC模式的介绍和对比 结合案例分析AT模式和XA模式【源码】
  • GMT 格式 转 标准日期格式
  • 【蓝桥杯选拔赛真题01】C++参赛建议 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析
  • 小红书为什么流量不好,小红书笔记质量评判标准有哪些?
  • 优化改进 | YOLOv2算法超详细解析(包括诞生背景+论文解析+技术原理等)
  • 作为前端开发,你应该知道的这十几个在线免费工具
  • 【广州华锐互动】关于物理力学的3D实验实操平台
  • LVS负载均衡(LVS简介、三种工作模式、十种调度算法)
  • Vue响应式数据的实现原理(手写副作用函数的存储和执行过程)
  • 内核进程的调度与进程切换
  • docker-rabbitmq 安装依赖
  • (1)(1.9) HC-SR04声纳
  • 06 MIT线性代数-列空间和零空间 Column space Nullspace
  • 【每日一题Day360】LC1465切割后面积最大的蛋糕 | 贪心
  • 中国地名信息库
  • 网络时代下的声音之路:如何在中央新闻媒体发布网评稿
  • Selenium中WebDriver最新Chrome驱动安装教程
  • 云原生Docker数据管理
  • endnote设置
  • 计算机网络整理-简称缩写【期末复习|考研复习】
  • Flink Hive Catalog操作案例