Django + MySQL + Vue封装页面Redis增删改查工具

2023-07-0708:14:15后端程序开发Comments879 views字数 5922阅读模式

开发或者测试过程中,通常需要操作到redis,网上下载一个redis可以满足我们大多的需求,但是无法满足团队之间的共享。下面这个例子提供给大家一点点思想,由页面工具呈现redis的操作,我将向大家介绍如何使用Django、MySQL和Vue来封装一个功能强大的页面Redis增删改查工具。Redis是一个快速且功能强大的内存数据库,而Django是一个流行的Python Web框架,MySQL则是一种常用的关系型数据库。通过结合这些技术,我们可以创建一个易于使用和高效的Redis工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

1. 简介

首先,让我们简要介绍一下每个技术的作用和优势。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

Django:Django是一个功能齐全且易于使用的Python Web框架,它提供了许多用于快速开发Web应用程序的工具和功能。我们将使用Django来构建后端API,处理与Redis数据库的交互。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

MySQL:MySQL是一种广泛使用的开源关系型数据库管理系统。我们将使用MySQL来存储和管理与Redis相关的数据,例如Redis键的元数据。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

Vue:Vue是一种现代化的JavaScript框架,用于构建用户界面。我们将使用Vue来构建前端界面,使用户能够轻松地与Redis数据库进行交互。‍文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

2. 准备工作

在开始之前,我们需要安装一些必要的软件和库。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

Python:确保已安装Python,并在系统环境变量中配置正确的路径。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

Django:通过运行pip install Django命令来安装Django。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

MySQL:安装并配置MySQL数据库。可以使用MySQL官方网站提供的安装程序进行安装。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

Vue:确保已安装Node.js和npm。然后,运行npm install -g @vue/cli来全局安装Vue CLI。‍文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

3. 创建Django项目

首先,我们将创建一个Django项目,用于构建后端API。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

命令行中执行以下命令:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

$ django-admin startproject redis_tool$ cd redis_tool

现在,我们需要创建一个Django应用程序:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

$ python manage.py startapp redis_api

然后,将redis_api应用程序添加到Django项目的配置中。在settings.py文件中的INSTALLED_APPS列表中添加redis_api:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

INSTALLED_APPS = [    ...    'redis_api',]

接下来,我们需要定义Redis相关的模型和视图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

在redis_api/models.py文件中,添加以下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

from django.db import modelsclass RedisKey(models.Model):    key = models.CharField(max_length=255)    value = models.TextField()    created_at = models.DateTimeField(auto_now_add=True)    updated_at = models.DateTimeField(auto_now=True)

这个模型将存储Redis键的元数据,包括键名、值以及创建和更新时间。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

现在,在redis_api/views.py文件中,添加以下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

from django.shortcuts import get_object_or_404from django.http import JsonResponsefrom django.views.decorators.csrf import csrf_exemptfrom .models import RedisKeyimport redis@csrf_exemptdef create_redis_key(request):    if request.method == 'POST':        key = request.POST.get('key')        value = request.POST.get('value')        try:            redis_client = redis.Redis()            redis_client.set(key, value)            redis_key = RedisKey.objects.create(key=key, value=value)            data = {                'id': redis_key.id,                'key': redis_key.key,                'value': redis_key.value,                'created_at': redis_key.created_at,                'updated_at': redis_key.updated_at            }            return JsonResponse({'status': 'success', 'data': data})        except Exception as e:            return JsonResponse({'status': 'error', 'message': str(e)})@csrf_exemptdef get_redis_key(request, key_id):    if request.method == 'GET':        redis_key = get_object_or_404(RedisKey, id=key_id)        try:            redis_client = redis.Redis()            value = redis_client.get(redis_key.key)            data = {                'id': redis_key.id,                'key': redis_key.key,                'value': value,                'created_at': redis_key.created_at,                'updated_at': redis_key.updated_at            }            return JsonResponse({'status': 'success', 'data': data})        except Exception as e:            return JsonResponse({'status': 'error', 'message': str(e)})@csrf_exemptdef update_redis_key(request, key_id):    if request.method == 'PUT':        redis_key = get_object_or_404(RedisKey, id=key_id)        value = request.POST.get('value')        try:            redis_client = redis.Redis()            redis_client.set(redis_key.key, value)            redis_key.value = value            redis_key.save()            data = {                'id': redis_key.id,                'key': redis_key.key,                'value': redis_key.value,                'created_at': redis_key.created_at,                'updated_at': redis_key.updated_at            }            return JsonResponse({'status': 'success', 'data': data})        except Exception as e:            return JsonResponse({'status': 'error', 'message': str(e)})@csrf_exemptdef delete_redis_key(request, key_id):    if request.method == 'DELETE':        redis_key = get_object_or_404(RedisKey, id=key_id)        try:            redis_client = redis.Redis()            redis_client.delete(redis_key.key)            redis_key.delete()            return JsonResponse({'status': 'success'})        except Exception as e:            return JsonResponse({'status': 'error', 'message': str(e)})

这些视图函数分别处理创建、获取、更新和删除Redis键的操作。我们使用redis库与Redis服务器进行交互,并使用Django的模型来管理Redis键的元数据。‍文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

4. 创建Vue前端

现在,让我们创建一个Vue前端,以便用户可以轻松地与Redis数据库进行交互。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

命令行中执行以下命令:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

$ vue create redis_tool_frontend$ cd redis_tool_frontend

在Vue项目中安装必要的库:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

$ npm install axios

接下来,我们需要创建Vue组件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

在src/components目录下,创建一个名为RedisKeyForm.vue的文件,并添加以下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

<template>  <div>    <h2>Create Redis Key</h2>    <form @submit.prevent="createRedisKey">      <div>        <label for="key">Key:</label>        <input type="text" id="key" v-model="key" required>      </div>      <div>        <label for="value">Value:</label>        <input type="text" id="value" v-model="value" required>      </div>      <button type="submit">Create</button>    </form>  </div></template>

<script>import axios from 'axios';

export default {  data() {    return {      key: '',      value: ''    };  },  methods: {    createRedisKey() {      axios.post('/api/redis-keys/', {        key: this.key,        value: this.value      })        .then(response => {          console.log(response.data);          // 处理成功响应        })        .catch(error => {          console.error(error);          // 处理错误响应        });    }  }}</script>这个Vue组件渲染一个表单,允许用户输入Redis键的名称和值,并在提交表单时通过发送POST请求来创建Redis键。

接下来,在src/components目录下,创建一个名为RedisKeyList.vue的文件,并添加以下代码:<template>  <div>    <h2>Redis Keys</h2>    <ul>      <li v-for="key in redisKeys" :key="key.id">        <span>{{ key.key }}</span>        <span>{{ key.value }}</span>        <button @click="getRedisKey(key.id)">Get</button>        <button @click="updateRedisKey(key.id)">Update</button>        <button @click="deleteRedisKey(key.id)">Delete</button>      </li>    </ul>  </div></template>

<script>import axios from 'axios';

export default {  data() {    return {      redisKeys: []    };  },  created() {    this.getRedisKeys();  },  methods: {    getRedisKeys() {      axios.get('/api/redis-keys/')        .then(response => {          this.redisKeys = response.data.data;        })        .catch(error => {          console.error(error);        });    },    getRedisKey(keyId) {      axios.get(`/api/redis-keys/${keyId}/`)        .then(response => {          console.log(response.data);          // 处理成功响应        })        .catch(error => {          console.error(error);          // 处理错误响应        });    },    updateRedisKey(keyId) {      // 获取更新后的值      // 发送PUT请求更新Redis键    },    deleteRedisKey(keyId) {      // 发送DELETE请求删除Redis键    }  }}</script>

这个Vue组件渲染一个Redis键列表,并提供获取、更新和删除Redis键的操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

5. 配置路由和视图

现在,我们需要配置路由和视图,以便在Django中提供API和在Vue中渲染页面。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

首先,在redis_tool/urls.py文件中,添加以下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

from django.urls import pathfrom redis_api import viewsurlpatterns = [    path('api/redis-keys/', views.create_redis_key),    path('api/redis-keys//', views.get_redis_key),    path('api/redis-keys//', views.update_redis_key),    path('api/redis-keys//', views.delete_redis_key),]

这些URL模式将映射到我们在前面定义的视图函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

接下来,在redis_tool/settings.py文件中,添加以下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

INSTALLED_APPS = [    ...    'rest_framework',    'redis_api',]...REST_FRAMEWORK = {    'DEFAULT_RENDERER_CLASSES': [        'rest_framework.renderers.JSONRenderer',    ]}

这样,我们就配置了Django REST Framework以处理API请求和响应。‍文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

6. 编译和运行

现在,让我们编译Vue前端并运行Django服务器。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

在命令行中执行以下命令:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

$ npm run build$ python manage.py runserver

现在,您可以在浏览器中访问http://localhost:8000,看到您的Redis工具的页面。您可以创建、获取、更新和删除Redis键,并与Redis数据库进行交互。‍文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

看一百遍,不如亲自操作一遍!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

至此,使用Django、MySQL和Vue封装了一个功能强大的页面Redis增删改查工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/50441.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/50441.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定