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

目录
相关文章
|
7月前
|
监控 Java
记录页面修改差异(java注解实现)
记录页面修改差异(java注解实现)
|
8月前
|
JavaScript 前端开发 网络安全
全局代理与自动代理主要差异与选择
全局代理与自动代理主要差异与选择
309 12
|
8月前
|
弹性计算 Kubernetes 中间件
基于 Traefik 如何实现向后转发自动去掉前缀?
基于 Traefik 如何实现向后转发自动去掉前缀?
|
8月前
动态范围匹配逻辑实现
动态范围匹配逻辑实现
47 0
|
8月前
|
JavaScript 前端开发 Java
若依框架---选中某值 其他值自动回调填充
若依框架---选中某值 其他值自动回调填充
219 0
|
计算机视觉
VS2019如何添加已有的配置表(使得之前已经配置好的属性可以无需配置直接使用)
VS2019如何添加已有的配置表(使得之前已经配置好的属性可以无需配置直接使用)
183 0
|
前端开发
Echarts实战案例代码(43):折线图中splitLine配置数据自动分组分段显示效果的解决方案
Echarts实战案例代码(43):折线图中splitLine配置数据自动分组分段显示效果的解决方案
695 0
|
存储 开发框架 前端开发
ModStartCMS v5.5.0 页面标签支持,用户逻辑优化
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。
|
存储 SQL JSON
如何不改表结构动态扩展字段?
痛点 软件行业唯一不变的就是变化,比如功能上线之后,客户或 PM 需要对已有的功能增加一些合理的需求,完成这些工作必须通过添加字段解决,或者某些功能的实现需要通过增加字段来降低实现的复杂性等等。
752 0
如何不改表结构动态扩展字段?
|
Apache 开发者
服务器节点动态上下线案例注册代码|学习笔记
快速学习 服务器节点动态上下线案例注册代码
118 0

热门文章

最新文章