栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

后台品牌管理功能实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

后台品牌管理功能实现

新建子应用

在现在的后台项目里再创建一个goods子应用
再settings.py文件里注册子应用
路由分发,新建urls.py文件
配置序列化器,创建serializers.py

创建模型类

在子应用下的models.py文件中创建

from django.db import models
# Create your models here.
class Brand(models.Model):
    first_name=models.CharField('品牌首字母',max_length=10,default=None)
    name=models.CharField('品牌名称',max_length=20)
    # 用来存储图片地址
    logo=models.CharField('品牌logo',max_length=200)
    def __str__(self):
        return self.name
    class Meta:
        db_table='brand'
        verbose_name_plural='品牌'

生成迁移文件进行迁移

往里添加几条数据
例如:

需要配置静态文件
在根目录创建static文件夹
在项目根目录中的settings.py里进行配置

STATIC_URL = '/static/'
STATICFILES_DIRS=(       #注意,逗号不能忘记加
    os.path.join(BASE_DIR,'static'),
)
编写序列化器

在子应用下创建serializers.py文件中创建

from rest_framework import serializers
from .models import *
#定义品牌的序列化器
class BrandSer(serializers.ModelSerializer):
    #                         输入允许为空
    logo=serializers.CharField(allow_null=True,allow_blank=True)
    class Meta:
        model=Brand
        fields='__all__'
        # 只能序列化输出  只读
        read_only_fields=['id']
编写视图类
from django.shortcuts import render
from rest_framework.viewsets import ModelViewSet
from rest_framework.views import APIView
from rest_framework.response import Response
from p6_306 import settings
from .models import *
from .serializers import *
import os
# Create your views here.
#分页器类
from rest_framework.pagination import PageNumberPagination
class MyPagination(PageNumberPagination):
    page_size = 3
    max_page_size = 5
    page_query_param = 'page'
    page_size_query_param = 'pageSize'
#品牌的视图集
class BrandViewSet(ModelViewSet):
    queryset = Brand.objects.all()
    serializer_class = BrandSer
    lookup_field = 'pk'
    lookup_url_kwarg = 'pk'
    pagination_class = MyPagination

#上传logo的视图
class UploadLogoAPIView(APIView):
    def post(self,request):
        #1.获取前端的数据
        file=request.data.get('file')
        #2.拼接一下路径
        static_path='static/images/logos'
        file_path=os.path.join(settings.BASE_DIR,static_path)
        #最终文件名
        file_name=os.path.join(file_path,file.name)
        # 3.保存图片的字节流
        with open(file_name,'wb')as f:
            f.write(file.file.read())
        return Response({
            'code':200,
            'msg':'图片上传成功',
            'static_path':static_path
        })

配置路由

from django.urls import path
from rest_framework import routers
from .views import *
urlpatterns = [
 #上传logo
    path('upload/logo/',UploadLogoAPIView.as_view())
]
#品牌的路由
router=routers.SimpleRouter()
router.register('brands',BrandViewSet,'brands')
urlpatterns+=router.urls
前端

找到对应的vue组件进行配置
展示全部品牌信息
组件例如:Brands.vue


展示删除修改的vue组件


添加的组件


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号