Django‘APIView增删改查:

 ## 前端

<template>
    <div>
        <!-- <div>{{ ContentList }}</div> -->
        <div>
            <button style="background-color:rgba(0,0,0,0);border: 0px; float: left;">会议室列表</button>
            <el-button type="primary" @click="dialogVisible = true" style="float:right">添加</el-button>
        </div>
        <div>
            <el-table :data="ContentList" style="width: 100%">
                <el-table-column prop="id" label="ID" width="80">
                </el-table-column>
                <el-table-column prop="zuzhi" label="组织" width="80">
                </el-table-column>
                <el-table-column prop="mingcheng" label="会议室名称" width="120">
                </el-table-column>
                <el-table-column prop="weizhi" label="会议室位置" width="120">
                </el-table-column>
                <el-table-column prop="rongliang" label="参考容量" width="90">
                </el-table-column>
                <el-table-column prop="shebei" label="内部设备" width="150">
                </el-table-column>
                <el-table-column prop="zhuangtai" label="状态" width="60">
                </el-table-column>

                <el-table-column fixed="right" label="操作" width="120">
                    <template slot-scope="scope">
                        <el-link type="primary">
                            <i class="el-icon-edit"><i @click="getones(scope.row.id)">编辑</i></i>
                        </el-link>
                        <el-link type="danger" @click="del(scope.row.id)">删除</el-link>
                    </template>
                </el-table-column>
            </el-table>

            <el-dialog title="添加会议" :visible.sync="dialogVisible" width="50%">
                <el-form ref="form" :model="form" label-width="100px">
                    <el-form-item label="组织">
                        <el-input v-model="form.zuzhi"></el-input>
                    </el-form-item>
                    <el-form-item label="会议室名称">
                        <el-input v-model="form.mingcheng"></el-input>
                    </el-form-item>
                    <el-form-item label="会议室位置">
                        <el-input v-model="form.weizhi"></el-input>
                    </el-form-item>
                    <el-form-item label="参考容量">
                        <el-input v-model="form.rongliang"></el-input>
                    </el-form-item>
                    <el-form-item label="内部设备">
                        <el-input v-model="form.shebei"></el-input>
                    </el-form-item>
                    <el-form-item label="状态">
                        <el-input v-model="form.zhuangtai"></el-input>
                    </el-form-item>
                </el-form>
                <span slot="footer" class="dialog-footer">
                    <el-button @click="dialogVisible = false">取 消</el-button>
                    <el-button type="primary" @click="Post_d">添 加</el-button>
                </span>
            </el-dialog>

            <el-dialog title="修改会议" :visible.sync="dialogVisible2" width="50%">
                <el-form ref="form" :model="form" label-width="80px">
                    <el-form-item label="组织">
                        <el-input v-model="form2.zuzhi"></el-input>
                    </el-form-item>
                    <el-form-item label="会议室名称">
                        <el-input v-model="form2.mingcheng"></el-input>
                    </el-form-item>
                    <el-form-item label="会议室位置">
                        <el-input v-model="form2.weizhi"></el-input>
                    </el-form-item>
                    <el-form-item label="参考容量">
                        <el-input v-model="form2.rongliang"></el-input>
                    </el-form-item>
                    <el-form-item label="内部设备">
                        <el-input v-model="form2.shebei"></el-input>
                    </el-form-item>
                    <el-form-item label="状态">
                        <el-input v-model="form2.zhuangtai"></el-input>
                    </el-form-item>
                </el-form>
                <span slot="footer" class="dialog-footer">
                    <el-button @click="dialogVisible2 = false">取 消</el-button>
                    <el-button type="primary" @click="Put_d">修 改</el-button>
                </span>
            </el-dialog>
        </div>

    </div>
</template>

<script>
import axios from 'axios';
export default {
    name: 'Content',
    data() {
        return {
            ContentList: [],
            dialogVisible: false,
            dialogVisible2: false,
            form: {
                zuzhi: '', mingcheng: '', weizhi: '', rongliang: '', shebei: '', zhuangtai: '',
            },
            form2: {
                zuzhi: '', mingcheng: '', weizhi: '', rongliang: '', shebei: '', zhuangtai: '',
            }
        };
    },
    props: {},

    components: {},

    created() { },

    mounted() {
        this.Content()
    },

    methods: {
        //获取所有信息
        Content() {
            axios.get('/myapp/MyContent/')
                .then((resp) => {
                    console.log(resp)
                    this.ContentList = resp.data.ser
                }).catch((err) => {
                    console.log(err)
                });
        },
        //新增
        Post_d() {
            axios.post('/myapp/ContentApi/', this.form)
                .then((resp) => {
                    console.log(resp)
                    this.$message(resp.data.msg)
                    this.Content()
                }).catch((err) => {
                    console.log(err)
                });
        },
        //获取修改数据
        getones(id) {
            this.dialogVisible2 = true
            axios.post('/myapp/ContentApi2/' + id + '/')
                .then((resp) => {
                    console.log(resp)
                    this.form2 = resp.data.ser
                    this.$message({
                        type: 'success',
                        message: resp.data.msg
                    })
                }).catch((err) => {
                    console.log(err)
                });
        },
        //修改
        Put_d() {
            console.log(this.form2.id)
            axios.put('/myapp/ContentApi2/' + this.form2.id + '/', this.form2)
                .then((resp) => {
                    console.log(resp)
                    this.$message(resp.data.msg)
                    this.dialogVisible2 = false
                    this.Content()
                }).catch((err) => {
                    console.log(err)
                });
        },
        //删除
        del(id) {
            axios.delete('/myapp/ContentApi2/' + id + '/')
                .then((resp) => {
                    console.log(resp)
                    this.$message(resp.data.msg)
                    this.Content()
                }).catch((err) => {
                    console.log(err)
                });
        }
    },

    computed: {},

    watch: {},

    directives: {},

    filters: {}
};
</script>

<style>
</style>

## Django 模型类:

from django.db import models


# Create your models here.

class Content(models.Model):
    zuzhi = models.CharField('组织', max_length=50)
    mingcheng = models.CharField('会议室名称', max_length=50)
    weizhi = models.CharField('会议室位置', max_length=50)
    rongliang = models.CharField('参考容量', max_length=50)
    shebei = models.CharField('内部设备', max_length=50)
    zhuangtai = models.SmallIntegerField('状态', choices=((0, '正常状态'), (1, '异常状态')))

    class Meta:
        db_table = 'content'
        verbose_name_plural = '会议'

    def __str__(self):
        return self.zuzhi

## Django 视图功能:增删改查

from django.db.models import Q
from django.shortcuts import render

# Create your views here.
from rest_framework.response import Response
from rest_framework.views import APIView

from myapp.models import Content
from myapp.serializers import MySer


# 加载用户全部信息
class MyContent(APIView):
    def get(self, request):
        con = Content.objects.all()
        ser = MySer(con, many=True)
        return Response({'code': 200, 'msg': '会议加载成功', 'ser': ser.data})


# 新增功能
class ContentApi(APIView):
    def post(self, request):
        zuzhi = request.data.get('zuzhi')
        mingcheng = request.data.get('mingcheng')
        weizhi = request.data.get('weizhi')
        rongliang = request.data.get('rongliang')
        shebei = request.data.get('shebei')
        zhuangtai = request.data.get('zhuangtai')
        if not all([zuzhi, mingcheng, weizhi, rongliang, shebei, zhuangtai]):
            return Response({'code': 400, 'msg': '信息不能为空'})
        Content.objects.create(
            zuzhi=zuzhi, mingcheng=mingcheng, weizhi=weizhi, rongliang=rongliang,
            shebei=shebei, zhuangtai=zhuangtai
        )
        return Response({'code': 200, 'msg': '添加成功'})


# 获取单条数据修改,及删除
class ContentApi2(APIView):
    # 获取单条要修改的数据
    def post(self, request, id):
        data = Content.objects.filter(id=id).first()
        ser = MySer(data)
        return Response({'code': 200, 'msg': '会议加载成功', 'ser': ser.data})

    # 实现修改
    def put(self, request, id):
        # con_id = request.data.get('con_id')
        zuzhi = request.data.get('zuzhi')
        mingcheng = request.data.get('mingcheng')
        weizhi = request.data.get('weizhi')
        rongliang = request.data.get('rongliang')
        shebei = request.data.get('shebei')
        zhuangtai = request.data.get('zhuangtai')
        print(zuzhi)
        try:
            con = Content.objects.get(id=id)
            con.zuzhi = zuzhi
            con.mingcheng = mingcheng
            con.weizhi = weizhi
            con.rongliang = rongliang
            con.shebei = shebei
            con.zhuangtai = zhuangtai
            con.save()

            return Response({'code': 200, 'msg': '修改信息成功'})
        except Exception as e:
            print('>>>>', e)
            return Response({'code': 400, 'msg': '获取信息失败'})

    # 实现删除
    def delete(self, request, id):
        try:
            Content.objects.get(id=id).delete()
            return Response({'code': 200, 'msg': '删除信息成功'})
        except:
            return Response({'code': 400, 'msg': '删除信息成功'})

## Django 路由

from django.contrib import admin
from django.urls import path

from myapp import views

urlpatterns = [
    path('MyContent/', views.MyContent.as_view()),
    path('ContentApi/', views.ContentApi.as_view()),
    path('ContentApi2/<int:id>/', views.ContentApi2.as_view()),
]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值