Django搭建后台管理系统_django用户管理系统怎么做-程序员宅基地

技术标签: python  django  后端  

        一个完整的微Web应用软件基本都会有一关管理员管理应用数据的后台管理系统,我们可以通过针对这个管理系统做出一系列的功能,比如菜单,选项,侧边栏,链接等进行数据的管理,也可以网站中的用户数据之类进行维护与更新。

后台管理系统的基本操作

        Django配合python的使用可以说是非常友好帮助我们搭建后台管理,包括良好的展示界面。

打开Django的配置文件,这里写入我们的项目应用名称-----smanage

本次总结就是通过django.contrib.admin添加到所创建的Django项目中,并且可以通过django.contrib.auth模块完成用户的认证处理,使用djang.contrib.sessions模块来实现状态保持的操作

setting文件配置时,我们可以先将我们的网站展示为中文

接着打开创建smanage项目,对该项目应用的models.py文件进行数据模型操作

from django.db import models


# Create your models here.

class Classes(models.Model):
    classname = models.CharField(max_length=30, verbose_name='班级号')
    class_price = models.IntegerField(verbose_name='班费')
    classroom = models.IntegerField(verbose_name='教室号')

    class Meta:
        # db_table = 'class'
        verbose_name_plural = verbose_name = '班级表'


class Student(models.Model):
    name = models.CharField(max_length=20, verbose_name='姓名')
    age = models.IntegerField(verbose_name='年龄')
    classes = models.ForeignKey(Classes, on_delete=models.CASCADE, verbose_name='班级号')
    phone = models.IntegerField(verbose_name='电话')
    image = models.ImageField(upload_to='staic/', default='staic/8.png', verbose_name='头像')

    class Meta:
        verbose_name_plural = verbose_name = '学生表'

    def __str__(self):
        return self.name

这里我写的是主表与从表的关系,用到了Foreign

这里的verbose_name就是起别名的意思,并且Classes这个类使用了一个ImageField的属性,它是 用来存入图片做头像之类,括号里的upload_to选项是必填项,使用相对路径,default选项就是如果没有存入图片,系统将选择默认图片进行存入。

生成迁移文件的两步骤

在终端进行输入  python manage.py makemigrations  和  python manage.py migrate 按顺序 

下一步再对我们的apps.py文件和admin.py文件进行操作

 在这里对我们的后台系统显示出来,这SmanageConfig类继承了AppConfig,这里用到了default_auto_field,就是ID字段自增,用verbose_name命名为学生管理系统

from django.contrib import admin

# Register your models here.
from .models import Classes, Student


@admin.register(Student)
class StudentAdmin(admin.ModelAdmin):
    list_display = ('name', 'age', 'phone', 'image', 'classes_id')


@admin.register(Classes)
class ClassesAdmin(admin.ModelAdmin):
    list_display = ('classname', 'class_price', 'classroom')  # 展示
    list_editable = ('class_price', 'classroom')  # 负责修改
    list_filter = ('classname',)
    list_per_page = 4  # 分页
    ordering = ['-classroom', 'classname']  # 优先级排序

 首先我们要先进行注册用户到数据库,并且给该用户设置有权限访问admin界面,并且可以管理这个数据模型

这里用到了装饰器进行注册了Student和Classes,并将它们封装成了类

在admin.py文件我们主要对字段的操作,展示,添加,修改,删除等基本操作

list_display:数据的展示、list_editable:数据的修改

list_filter:条件过滤进行一个筛选功能

list_per_page:分页功能

 ordering:优先级排序

本次总结到这里结束

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Hwlyhl/article/details/123001817

智能推荐

linux centos7安装redis_linux7安装redis客户端-程序员宅基地

文章浏览阅读312次。linux安装redis_linux7安装redis客户端

动态规划入门感悟_动态规划的基本思想及感悟-程序员宅基地

文章浏览阅读357次,点赞2次,收藏3次。不会动态规划的可以看看我博客里动态规划入门一文哦http://blog.csdn.net/qq_39670434/article/details/77414362在这里为了帮助萌新们学习动态规划,调用几篇大佬的好文章http://blog.csdn.net/baidu_28312631/article/details/47418773http://blog.csdn.net_动态规划的基本思想及感悟

单片机上电不断重启复位_stc8f单片机勾选低压复位单片机不断复位怎么解决-程序员宅基地

文章浏览阅读7.7k次,点赞4次,收藏15次。单片机不断重启复位的原因主要是一个原因;就是单片机在不断复位造成复位的原因有几个;1、单片机硬件复位,这个要检查硬件电路中的复位电路是不是有错误2、单片机程序中有代码造成软件复位3、单片机在不断上电断电循环过程造成不断复位主要讲一下第三种情况,这种情况的主要原因的因为外部电源供电不足导致单片机不断复位。你先检查一下自己的电路中是否有很多需要供电的模块,比如电机,制冷发热类的模块等等需要..._stc8f单片机勾选低压复位单片机不断复位怎么解决

哈尔滨工业大学计算机科学与技术学院许博文,王轩-哈尔滨工业大学(深圳)计算机科学与技术学院...-程序员宅基地

文章浏览阅读573次。一、近三年发表期刊论文[1]第一作者及通讯作者论文1)Yulin Wu, Xuan Wang, Zoe L. Jiang, etc. Efficient Server-Aided Secure Two-Party Computation in Heterogeneous Mobile Cloud Computing, IEEE Transactions on Dependable and Secu..._ansactions on dependable and secure computing

Prometheus源码学习(8) scrape总体流程_promethus scrapes-程序员宅基地

文章浏览阅读1.2k次。1. main 函数中初始化 scrapeManager 实例// 初始化 scrapeManager,fanout Storage 是一个读写多个底层存储的代理scrapeManager = scrape.NewManager(log.With(logger, "component", "scrape manager"), fanoutStorage)fanoutStorage 是读写多个底层存储的代理,实现了 storage.Appendable 接口。scrape.Manager 结构体._promethus scrapes

Windows10 Atom安装和运行Python的使用教程(详细)-程序员宅基地

文章浏览阅读2.6w次,点赞19次,收藏85次。目录一、下载Atom二、Atom安装Python相关组件1.检查Python库支持2.安装Python的适合Atom的IDE、UI、Server和运行工具*三、运行代码范例(爬取以杉原杏璃为关键字的百度图片)一、下载Atom1.官网:Atom官网2.打开这个网页,可以看到Atom针对于操作系统Windows7或以上的版本3.下载完成,双击exe4.加..._atom安装

随便推点

ubuntu怎么卸载matlab,卸载Ubuntu下Matlab (uninstall matlab2009 for linux)-程序员宅基地

文章浏览阅读422次。2.在/var目录搜索lm,我只找到以lm-sensors开头的文件,而lm-sensors是一个硬件状况监视器,用来得到温度、电压、风扇速度传感器信我在matlab官网搜到如下帮助文档Problem Description:I would like to uninstall MATLAB on a UNIX or Linux machine.Solution:There is not unins..._ubantu 无法移除matlab

运算放大器的关键指标详解二(噪声)_运放pid电路的噪声-程序员宅基地

文章浏览阅读2.1w次,点赞43次,收藏192次。噪声指标(Noise)一个正常工作的放大电路,当输入端接地时,用示波器观察输出,你看到的可能不是平直的细线,而是在一定幅度之内的杂乱无章的波形。这就是噪声。 你在示波器上看到线越粗,就说明噪声幅度越大。放大电路的输出端噪声,小至 μV 以下,大至百 mV 以上,完全取决于电路设计,能否在示波器上看见,则取决于示波器选择和设置。噪声定义:1) 它的波形在任意时刻都是不确定的,因此它是广谱的,有低频也有高频;2) 它的幅度又是有限制的,这与数学上的高斯分布近似但不完全一致;3) 它具有无限积分趋零性_运放pid电路的噪声

数据分析案例分析:日化公司社群营销场景,产品SKU,用户转化率,用户流转地图_leads数-程序员宅基地

文章浏览阅读3k次。近期参加了一个业务数据分析的3天课程,锻炼自己的业务实例数据分析能力。接下来的内容是第一天课程的作业,里面涉及到许多自己的知识盲区(社群营销,产品SKU,用户转化率,用户流转地图)。分享在这里,期待感兴趣的同志们多多指点~目录作业要求问题分析背景分析概念厘清1. 社群营销是什么?拉群卖货吗?2. 产品SKU3. 用户转化率Q2为什么展示后4张图(图6-图9)【作业点评总结Q2】Q1 从图中看,存在什么问题,出现这些问题的原因是什么Step1. 分..._leads数

数据库多维度水平切分设想 --- 分库,分表,多维度,水平切分,mysql,负载均衡_ssas 加入维度后数据没有切分-程序员宅基地

文章浏览阅读3k次。随着互联网应用的普及,海量数据存储早已经成了大型网站技术人员关注的焦点。每天上亿的访问量对数据库的压力可想而知。因此,为了维持数据库的稳定性和可扩展性,我们常常选择在业务垂直切分的基础上(抽象出业务中心单元如用户中心),再进行数据库的水平切分。 那么为什么要进行数据库的水平切分呢?有些人会说,如果单台数据库服务器过载过高,则可以采用replication的机制,分别指定读写服务器实现读写_ssas 加入维度后数据没有切分

eclipse中导航栏名称主要功能_echarls的导航栏意思-程序员宅基地

文章浏览阅读375次。A-mapper 里面主要写数据库的A-parent 类,父类方法A-pojo POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。POJO类也给我们在struts框架中的配置带来了很大的方便。A-service 提供与数据..._echarls的导航栏意思

WebSocket 的 PHP 实现 - phpwebsocket_websocket chr(1)-程序员宅基地

文章浏览阅读1.3k次。从名字上也可看出,这是一个 WebSocket 的 PHP 实现。示例客户端代码:1var host = "ws://localhost:12345/websocket/server.php";2try{3 socket = new WebSocket(host);_websocket chr(1)

推荐文章

热门文章

相关标签