【DVadmin教程】新增一个app并且创建一个curd模型

news2024/11/16 21:26:17

下载dvadmin

在gitee上搜索 django-vue-admin 别选错了,选择那个星最多的
gitee上会推荐移步 django-vue3-admin 别上当,用那个会踩坑,此教程就不适用了;

运行后端

后端

创建APP

python manage.py startapp rules

调整位置

为了管理方便 把刚创建的 rules 文件夹移动到dvadmin目录下
在这里插入图片描述
添加setting文件,在setting.py的INSTALLED_APPS下增加rules,由于刚移动了rules到dvadmin下所以就要使用 dvadmin.rules
在这里插入图片描述

调整位置后,还需要再调整apps的name不然报错说没有安装这个app
在这里插入图片描述
增加个url;rules在创建后是没有url.py的,需要手动增加一个,这个不用手动创建,直接从rules同级目录system下复制一份,并且把多余的代码注释掉,注释掉而不清理掉主要是为了方便后边增加模型后再增加路由
在这里插入图片描述
注释掉后的代码,只保留一个urlpatterns=[]就行了,django会根据这个urlpatterns来找路由
在这里插入图片描述
rules的路由有了就能在总路由里配置上了
在这里插入图片描述

增加虚拟币币种表

model层:

在dvadmin/rules/models.py填充一下内容:

from django.db import models
from dvadmin.utils.models import CoreModel

# Create your models here.


table_prefix_in = "rules_"


class MiningCryptoInfo(CoreModel):
    id = models.BigAutoField(primary_key=True, help_text="Id")
    # crypto_id = models.BigIntegerField(
    #     verbose_name="虚拟币id", help_text='唯一标识,主键,自增,从80001开始', db_index=True, primary_key=True
    # )
    crypto_id = models.IntegerField(verbose_name="虚拟币id", help_text='唯一标识,主键,自增,从80001开始', )
    crypto_name = models.CharField(max_length=100, default=None, verbose_name="币种标准名", )
    crypto_code = models.CharField(max_length=20, default=None, verbose_name="币种代码", )
    refer_link = models.CharField(max_length=1024, default=None, verbose_name="参考链接", blank=True, )
    description = models.CharField(max_length=1024, default=None, verbose_name="币种描述信息", blank=True, )

    class Meta:
        db_table = table_prefix_in + "mining_crypto_info"
        verbose_name = '虚拟币币种'
        verbose_name_plural = verbose_name
        ordering = ('id',)

序列化

dvadmin有核心类库继承一下CustomModelSerializer就能省很多代码;
序列化放在了 backend/dvadmin/rules/views.py 文件下,直接复制过去就行了;

from dvadmin.utils.viewset import CustomModelViewSet
from dvadmin.rules.models import MiningCryptoInfo
from dvadmin.utils.serializers import CustomModelSerializer


# Create your views here.


class MiningCryptoInfoSerializer(CustomModelSerializer):
    """
    序列化器
    """

    class Meta:
        model = MiningCryptoInfo
        fields = "__all__"

视图层

视图层上dvadmin也有核心类库继承一下CustomModelViewSet能省很多代码;
视图放在了 backend/dvadmin/rules/views.py 文件下,直接复制过去就行了;

class MiningCryptoInfoViewSet(CustomModelViewSet):
    queryset = MiningCryptoInfo.objects.all()
    serializer_class = MiningCryptoInfoSerializer
    create_serializer_class = MiningCryptoInfoSerializer
    update_serializer_class = MiningCryptoInfoSerializer
    filter_fields = ['id', 'crypto_id', 'crypto_name', 'crypto_code']
    search_fields = ['id', 'crypto_id', 'crypto_name', 'crypto_code']

在添加完序列化、视图层后的backend/dvadmin/rules/views.py 文件

from dvadmin.utils.viewset import CustomModelViewSet
from dvadmin.rules.models import MiningCryptoInfo
from dvadmin.utils.serializers import CustomModelSerializer


# Create your views here.


class MiningCryptoInfoSerializer(CustomModelSerializer):
    """
    序列化器
    """

    class Meta:
        model = MiningCryptoInfo
        fields = "__all__"


class MiningCryptoInfoViewSet(CustomModelViewSet):
    queryset = MiningCryptoInfo.objects.all()
    serializer_class = MiningCryptoInfoSerializer
    create_serializer_class = MiningCryptoInfoSerializer
    update_serializer_class = MiningCryptoInfoSerializer
    filter_fields = ['id', 'crypto_id', 'crypto_name', 'crypto_code']
    search_fields = ['id', 'crypto_id', 'crypto_name', 'crypto_code']

前端

前端创建一项

参考别处的代码直接复制一份过来;例如我复制了这个白名单的代码,并且改名为了XXX
在这里插入图片描述

在dvadmin里增加上这一个app

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620029.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】详解信号的分类如何自定义信号的作用

一、信号的定义 Linux系统提供的让用户(进程)给其他进程发送异步信息的一种方式。在操作系统中,信号是一种进程间通讯的有限制的方式,主要用于提醒进程某个事件已经发生。信号在Unix、类Unix以及其他POSIX兼容的操作系统中广泛应用。它作为一种异步的通知…

Ubuntu系统开机长

Ubuntu系统开机长 1. 检查开机自启动软件的所占时间2. 将耗时最高的禁止开机自启动 1. 检查开机自启动软件的所占时间 systemd-analyze blame2. 将耗时最高的禁止开机自启动 sudo systemctl disable networking.service这个耗时是有阈值的,一般大于15s的算&#x…

增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM,Python代码)

1.效果视频:增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM)_哔哩哔哩_bilibili) 2.三个模型和数据集的介绍 交通流量预测(python代码,压缩包中带有数据,CN…

基于pytorch hook机制,生成一次前后向的timeline

基于pytorch hook机制,生成一次前后向的timeline 一.效果图二.代码三.运行以上代码,生成timeline.json,打开https://ui.perfetto.dev/,导入该文件,可看到以上效果 本文通过pytorch hook机制,拦截所有子module的forward和backward,统计执行时间及内存使用情况 一.效果图 二.代码…

探索Sun-Panel:一站式服务器、NAS导航面板、Homepage、浏览器首页

随着数字化时代的持续演进,尤其是对于开发者而言,我们与浏览器的互动频率越来越高。尽管浏览器提供了书签功能,但总有一种感觉,似乎书签并不能完全满足我们的需求。我们期待着一个能够满足我们需求的可私有化部署的浏览器导航页。…

vue实现水平排列且水平居中

样式实现 .body{text-align: center; } .body_content{display: inline-block; } .body_content_cardList{display: flex;flex-wrap: wrap;text-align: center; }<div class"body"><div class"body_content"><div class"body_content…

OpenAI内部最受欢迎的10个GPTs推荐!建议收藏!

前面文章介绍了如何创建自己的GPTs&#xff0c;但是在应用商店里还有很多各种GPTs可以供我们使用&#xff0c;满足我们的各种应用场景。这就像手机的应用商店一样&#xff0c;我们除了可以自己编写应用程序之外&#xff0c;还可以使用使用应用商店里海量应用。有关创建自己的自…

Spring三级缓存源码解析

Spring三级缓存 前置知识三级缓存定义SpringBean生命周期 Bean的初始化getSingleton 分析加入一级缓存 CreateBean过程(A)A填充属性BB填充属性A,执行getSingleton&#xff08;A&#xff09;B完成初始化 前置知识 三级缓存定义 public class DefaultSingletonBeanRegistry ext…

nginx配置挂载html

目标 很多软件的官方文档&#xff0c;在国内打开很慢&#xff0c;每次都得等很久&#xff0c;看到官方同时提供了html的包&#xff0c;所以想着挂载到本地nginx下&#xff0c;查看会方便很多。 下载官方html文档包&#xff0c;解压到documentation_htmls下 想添加新的文档也是…

数字人技术:VASA-1阅读笔记

论文地址&#xff1a;https://www.microsoft.com/en-us/research/project/vasa-1/ DiT约束条件 引入了5个约束条件&#xff0c;包括主要注视方向、头部到摄像头的距离、情绪偏移量、为了增加帧间平滑性&#xff0c;还增加了前K帧的语音特征和生成的运动特征&#xff0c;具体如…

交通气象站解析

TH-GQX8交通气象站专为交通气象服务而设计&#xff0c;是一种典型的综合多要素交通监测站。其核心功能在于实时监测能见度、天气现象及道面状况&#xff0c;并同时测量相关的基本气象参数。它的主要目的是及时发现各路段及关键点的各种异常交通环境因素变化和气象状况&#xff…

C语言实现双人贪吃蛇项目(基于控制台界面)

一.贪吃蛇 贪吃蛇是一款简单而富有乐趣的游戏&#xff0c;它的规则易于理解&#xff0c;但挑战性也很高。它已经成为经典的游戏之一&#xff0c;并且在不同的平台上一直受到人们的喜爱和回忆。 二.贪吃蛇的功能 游戏控制&#xff1a;玩家可以使用键盘输入设备来控制蛇的移动方…

JavaScript系列------1

1. JavaScript组成 ECMAScript JS 语言基础。比如&#xff1a;变量、分支语句、循环语句、对象等等。 Web APIs DOM(页面文档对象模型): 操作文档&#xff0c;比如对页面元素进行移动、大小、添加删除等操作 BOM(浏览器对象模型): 操作浏览器&#xff0c;比如页面弹窗&#x…

【前端面试常问】什么是前端工程化

&#x1f31f;【前端面试常问】前端工程化&#x1f31f; &#x1f4da; 什么是前端工程化&#xff1f; &#x1f389; 前端工程化&#xff0c;简而言之&#xff0c;是通过整合先进的工具链和最佳实践&#xff0c;将前端开发过程实现标准化、自动化和高效化的过程&#xff0c;…

如何利用美国站群服务器通过CN2线路优化中美之间的数据传输?

如何利用美国站群服务器通过CN2线路优化中美之间的数据传输? 随着全球化进程的不断推进&#xff0c;跨国企业和国际市场的拓展对数据传输速度和稳定性提出了更高的要求。特别是对于中美之间的数据传输&#xff0c;由于地理位置遥远和网络环境不同&#xff0c;优化数据传输变得…

机器人自动驾驶时间同步进阶

0. 简介 之前时间同步也写过一篇文章介绍机器人&自动驾驶中的时间同步。在最近的学习中发现一些额外需要阐述学习的内容&#xff0c;这里就再次写一些之前没写到的内容。 1. NTP NTP 是网络时间协议&#xff0c;用来同步网络中各计算机时间的协议&#xff0c;把计算机的时…

QT常量中有换行符解决方法--使用中文显示乱码或者编译报错

QT6.3常量中有换行符 方法1&#xff1a;&#xff08;不能与方法2混用&#xff09; cpp文件顶部添加&#xff1a; #pragma execution_character_set("utf-8") 方法2&#xff1a;&#xff08;不能与方法1混用&#xff09; int ret2QMessageBox::information(this,QSt…

Java | Leetcode Java题解之第45题跳跃游戏II

题目&#xff1a; 题解&#xff1a; class Solution {public int jump(int[] nums) {int length nums.length;int end 0;int maxPosition 0; int steps 0;for (int i 0; i < length - 1; i) {maxPosition Math.max(maxPosition, i nums[i]); if (i end) {end maxP…

Qt 菜单栏上手教程:QMenuBar QMenu QToolbar

引言 在Qt框架中&#xff0c;QMenuBar、QMenu、QToolbar和QAction都是用于构建应用程序界面中的用户交互元素。 QMenuBar 是什么&#xff1a;QMenuBar是一个用于创建横向菜单栏的类。在桌面应用程序中&#xff0c;它通常位于窗口的顶部。应用场景&#xff1a;当您需要一个包含…

清华大学灵境智能技术交叉创新群体博士后,综合年收入30-60万

清华大学灵境智能技术交叉创新群体现面向全球招聘优秀博士后研究人员&#xff0c;以进一步推动三维生成、三维重建、多模态智能交互、控制交互演化、知识工程及情感计算等领域的研究。我们诚邀有志于从事交叉学科研究的青年才俊加入我们的团队&#xff0c;共同探索智能技术的前…