djangVue_前后端配置动态的数据字段标

简介: 前后端配置动态的数据字段标签(django_vue)

@[TOC]

背景

因为网站的挑战榜模块之前都是前端写的静态数据,适应性不强,我每次加一个标签需要重新发布一次前端,非常麻烦

效果

前端:
image.png

django后台动态配置:
image.png

接口实现

模型层

类型,标题,json字符串

from django.db import models
from django.utils import timezone
# Create your models here.


class DictModel(models.Model):
    kind = models.TextField(blank=True,null=True)
    #种类
    title=models.CharField(blank=True, null=True, max_length=20)
    #标题
    describe=models.TextField(blank=True,null=True)
    #配置项 json字符串
    option=models.TextField(blank=True,null=True)
    #发布时间
    publish=models.DateTimeField(default=timezone.now)
    class Meta:
        ordering=("-publish",)
        db_table = 'DictModel'
    def __str__(self):
        return '%s' % (self.title)

视图层

查询接口 get全部,post进行全量匹配

from django.http import JsonResponse
import json
from .models import DictModel


def index(request):#获取所有的文章
    try:
        if request.method == 'GET':
            allDictModel = DictModel.objects.order_by('publish')
            resData = []
            for dicItem in allDictModel:
                resData.append({
   
   
                    "title":  dicItem.title,
                    "option": dicItem.option
                })
            return JsonResponse({
   
   "code": 200, "data": resData, "msg": 'return all dict'})
        elif request.method == 'POST':
            print('post')
            postData = json.loads(request.body.decode('utf-8'))
            print(postData)
            kind = postData['kind']
            allDictModel = DictModel.objects.order_by('publish')
            resData = []
            for dicItem in allDictModel:
                if str(kind) == str(dicItem.kind):
                    resData.append({
   
   
                        "title":  dicItem.title,
                        "option": dicItem.option
                    })
            return JsonResponse({
   
   "code": 200, "data": resData, "msg": 'serch dict success'})
        return JsonResponse({
   
   "code": 0, "data": [], "msg": 'not allowed'})
    except Exception as e:
        return JsonResponse({
   
   "code": -1, "data": [], "msg": str(e)})

前端适配

获取接口数据即可
methods定义一个获取接口的方法

        getChallengeDict () {
   
   
            const that = this
            that.$axios
                .post(that.baseurl + 'dictModel/index/', {
   
   
                    kind: 'challenge'
                    // 传入索引
                })
                .then((res) => {
   
   
                    that.challengeConfig = res.data.data.map(item => {
   
   
                        return JSON.parse(item.option)
                    })
                })
                .catch((error) => {
   
   
                    throw Error(error)
                })
        }

渲染层

        <ul
          v-for="(item, index) in challengeConfig"
          :key="index"
          class="ul_style"
        >
          <div
            v-bind:class="[
              { li_active: index === activeChallengeIndex },
              li_errorClass,
            ]"
          >
            <li @click="clickChallengeEvent(item,index)">{
  
  { item.title }}</li>
          </div>
        </ul>

我的博客网站链接:https://yongma16.xyz
结束,感谢阅读!
image.png

目录
相关文章
|
存储 安全 测试技术
讲解移动应用的安全问题及如何防范。
移动应用安全涉及数据、认证、代码、网络及漏洞防护。关键措施包括数据加密、安全通信协议、认证授权、代码加固、安全测试及用户教育。开发者应关注最新安全威胁,与专业人士合作进行安全评估,确保应用安全。
196 5
Airtest的多图查找与两图对比
Airtest的多图查找与两图对比
311 0
|
11月前
|
设计模式 算法 搜索推荐
后端开发中的设计模式应用与实践
在软件开发的广袤天地中,后端技术如同构筑高楼大厦的钢筋水泥,支撑起整个应用程序的骨架。本文旨在通过深入浅出的方式,探讨后端开发领域内不可或缺的设计模式,这些模式犹如精雕细琢的工具箱,能够助力开发者打造出既健壮又灵活的系统架构。从单例模式到工厂模式,从观察者模式到策略模式,每一种设计模式都蕴含着深刻的哲理与实践价值,它们不仅仅是代码的组织方式,更是解决复杂问题的智慧结晶。
|
存储 Cloud Native 数据挖掘
Ganos
Ganos
329 3
|
11月前
|
关系型数据库 MySQL Java
【MySQL】基础语法大全
【MySQL】基础语法大全
458 0
|
编解码 人工智能 算法
社区供稿 | AIGC图像分辨率太低?快来试试像素感知扩散超分模型,你想要的细节都在这里!
本文介绍了一种全新的基于SD生成先验的图像超分辨率和修复算法,在多个任务上都有着SOTA的表现。
|
机器学习/深度学习 算法 Python
Python 使用SMOTE解决数据不平衡问题(最新推荐)
SMOTE是一种强大的过采样技术,可以有效地处理不平衡数据集,提升分类器的性能。通过imbalanced-learn库中的SMOTE实现,我们可以轻松地对少数类样本进行过采样,平衡数据集。在实际应用中,我们可以根据具体数据集的特点和需求,选择合适的过采样方法。
|
监控 jenkins 测试技术
持续集成/持续部署(CI/CD)的最佳实践
【6月更文挑战第19天】CI/CD最佳实践概括: 确定CI(集成早期发现错误)和CD(自动化部署)概念,选择适配团队的工具如Jenkins、GitLab CI;编写自动化测试,确保每次提交时运行;实行代码审查和质量检查;自动化构建与部署,利用容器技术;建立监控与反馈机制,快速响应问题;采用分支策略如特性分支和拉取请求;持续学习与改进流程,优化效率和质量。
|
数据可视化
RNAseq|构建预后模型后你还需要这些图,森林图,诺莫图,校准曲线,DCA决策曲线
RNAseq|构建预后模型后你还需要这些图,森林图,诺莫图,校准曲线,DCA决策曲线
531 0
|
负载均衡 Kubernetes 安全
Istio Ambient Mesh 四层负载均衡实现剖析
前言k8s通过service将相同类型的工作负载组织成为一组集群,并提供了负载均衡的能力,可以将请求随机路由到集群中的端点。然而在Istio Ambient Mesh中,为了实现四层安全,Istio Ambient Mesh通过配置iptables规则,将流量拦截到ztunnel组件,以便实现4层流量的加密处理后再向对端ztunnel发出,最终对端ztunnel再将流量转发至目标工作负载,而这样一
610 1