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

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

背景

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

效果

前端:

django后台动态配置:

接口实现

django介绍

Django是一个开源的Web应用程序框架,基于Python编程语言。它遵循了MVC(Model-View-Controller)的设计模式和DRY(Don’t Repeat Yourself)的开发原则,提供了一套完整的Web应用程序开发所需的组件,包括模型、视图、模板、表单、数据库、URL路由、管理员界面等。Django的目标是让开发人员可以快速地构建高质量的Web应用程序,同时还提供了很好的可扩展性、安全性和可维护性。Django的主要特点有:

  1. 强调代码复用和“松散耦合”。
  2. 自带ORM(对象关系映射),方便与数据库交互。
  3. 自带Admin管理系统。
  4. 自带表单和模板系统,使得开发过程更加高效。
  5. 提供了完善的URL路由解决方案,方便管理不同的URL请求。
  6. 支持多种缓存机制,提高了应用程序的性能。
  7. 提供了工具和插件,方便开发人员进行开发和测试。

总体来说,Django是一款强大而灵活的Web框架,适合构建各种类型的Web应用程序,从简单的博客到复杂的社交网络

admin

Django的admin是Django框架中一个非常强大的内置模块,它提供了一个自动生成的后台管理界面,可以方便地对数据库中的数据进行增删改查、权限管理、更改站点设置等操作,大大减少了开发人员的工作量。

通过在Django项目中注册模型,就可以快速创建一个自定义的管理界面。管理员可以通过admin站点直接对注册的模型对象进行管理,而无需编写管理功能的代码。

在admin中,开发人员还可以自定义模型的表单、列表、过滤器、搜索、排序等功能,以满足不同的需求。此外,admin还支持多语言功能,使得开发人员能够轻松支持不同的语种。

总而言之,Django的admin是一个极其方便、易用、高效的后台管理模块,可以大大提高后台管理的效率和开发效率。

模型层

类型,标题,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

结束,感谢阅读!


目录
相关文章
|
1月前
|
JavaScript 前端开发 Python
django接收前端vue传输的formData图片数据
django接收前端vue传输的formData图片数据
32 4
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
61 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
搜索推荐 关系型数据库 MySQL
#874358#基于django/neo4j的电视剧浏览数据推荐系统
#874358#基于django/neo4j的电视剧浏览数据推荐系统
19 0
|
3月前
|
数据采集 自然语言处理 监控
【优秀python毕设案例】基于python django的新媒体网络舆情数据爬取与分析
本文介绍了一个基于Python Django框架开发的新媒体网络舆情数据爬取与分析系统,该系统利用Scrapy框架抓取微博热搜数据,通过SnowNLP进行情感分析,jieba库进行中文分词处理,并以图表和词云图等形式进行数据可视化展示,以实现对微博热点话题的舆情监控和分析。
136 2
【优秀python毕设案例】基于python django的新媒体网络舆情数据爬取与分析
|
3月前
|
监控 数据可视化 前端开发
基于python django生产数据与计划大屏,可链接数据库
本文介绍了一个基于Python Django框架开发的生产数据与计划大屏系统,该系统能够实时采集和展示生产数据,支持数据可视化和实时更新,以提高生产监控的效率和质量。
|
3月前
|
数据可视化 安全 前端开发
基于Django的美团药品数据分析与可视化系统,有多用户功能,可增删改查数据
本文介绍了一个基于Django框架开发的美团药品数据分析与可视化系统,该系统具备多用户功能,支持数据的增删改查操作,并采用MySQL、pandas、echarts和bootstrap技术栈,为用户提供了一个高效、安全且实用的药品数据管理和分析平台。
基于Django的美团药品数据分析与可视化系统,有多用户功能,可增删改查数据
|
3月前
|
API 数据库 开发者
【独家揭秘】Django ORM高手秘籍:如何玩转数据模型与数据库交互的艺术?
【8月更文挑战第31天】本文通过具体示例详细介绍了Django ORM的使用方法,包括数据模型设计与数据库操作的最佳实践。从创建应用和定义模型开始,逐步演示了查询、创建、更新和删除数据的全过程,并展示了关联查询与过滤的技巧,帮助开发者更高效地利用Django ORM构建和维护Web应用。通过这些基础概念和实践技巧,读者可以更好地掌握Django ORM,提升开发效率。
39 0
|
3月前
|
关系型数据库 MySQL 机器人
Django入门到放弃之数据库配置
Django入门到放弃之数据库配置
|
3月前
|
前端开发 JavaScript 安全
Django入门到放弃之常见配置及基本命令
Django入门到放弃之常见配置及基本命令
|
4月前
|
API 数据库 数据安全/隐私保护
Django配置api、管理系统和视图
Django配置api、管理系统和视图
114 1