zoukankan      html  css  js  c++  java
  • 13.home数据库设计

    home数据库设计

    轮播图

    依赖
    安装pillow:
    >: pip install pillow
    
    修订manage.py加载dev
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')
    
    模型类:home/models.py
    from django.db import models
    class Banner(models.Model):
        """轮播图"""
        # upload_to 存储子目录,真实存放地址会使用配置中的MADIE_ROOT+upload_to
        image = models.ImageField(upload_to='banner', verbose_name='轮播图', null=True, blank=True)
        name = models.CharField(max_length=150, verbose_name='轮播图名称')
        note = models.CharField(max_length=150, verbose_name='备注信息')
        link = models.CharField(max_length=150, verbose_name='轮播图广告地址')
        orders = models.IntegerField(verbose_name='显示顺序')
        is_show=models.BooleanField(verbose_name="是否上架", default=False)
        is_delete=models.BooleanField(verbose_name="逻辑删除", default=False)
    
        class Meta:
            db_table = 'luffy_banner'
            verbose_name = '轮播图'
            verbose_name_plural = verbose_name
    
        def __str__(self):
            return self.name
    
    数据迁移:外层luffyapi路径下的终端
    >: python manage.py makemigrations
    >: python manage.py migrate
    
    序列化:home/serializers.py
    from rest_framework import serializers
    from .models import Banner
    class BannerModelSerializer(serializers.ModelSerializer):
        """轮播图序列化器"""
        class Meta:
            model = Banner
            # 序列化的目的就是反馈给外界,所以指定的字段就行,其他字段用于orm数据的筛选
            fields = ["image", "link"]
    
    视图模块:home/views.py
    from rest_framework.generics import ListAPIView
    from .models import Banner
    from luffyapi.settings import constant
    from .serializers import BannerModelSerializer
    
    class BannerListAPIView(ListAPIView):
        queryset = Banner.objects.filter(is_show=True, is_delete=False).order_by("-orders")[:constant.BANNER_LENGTH]
        serializer_class = BannerModelSerializer
    
    常量配置文件:settings/constant.py
    # 轮播图最大长度
    BANNER_LENGTH = 7
    
    主路由:urls.py
    urlpatterns = [
       	# ...
        path('home/', include("home.urls")),
    ]
    
    子路由:home/urls.py
    urlpatterns = [
       	# ...
        path("banner/", views.BannerListAPIView.as_view()),
    ]
    
    接口
    http://api.luffy.cn:8000/home/banner/
    
    
  • 相关阅读:
    十万个为什么
    安装VmwareTools遇到的问题
    CentOS7没有ifconfig命令怎么办
    ftp/ http/ https/ tcp的关系
    C/S和B/S架构
    Nginx 安装以及验证教程
    osi七层模型
    在linux上安装tenginx
    Awvs、Snort的下载安装
    Laravel——DI(依赖注入)
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14259741.html
Copyright © 2011-2022 走看看