路飞-后台home模块
2024-10-08 10:25:41
home模块
创建home模块
"""
前提:在 luffy 虚拟环境下
1.终端从项目根目录进入apps目录
>: cd luffyapi & cd apps
2.创建app
>: python ../../manage.py startapp home
"""
路由分发
主路由:luffyapi/urls.py
from django.urls import path, re_path, include
urlpatterns = [
# ...
path('user/', include('home.urls')),
# ...
]
子路由:home/urls.py
from django.urls import path, re_path
urlpatterns = [
]
Banner数据表model设计
utils/model.py
from django.db import models
class BaseModel(models.Model):
orders = models.IntegerField(verbose_name='显示顺序')
is_show = models.BooleanField(verbose_name="是否上架", default=False)
is_delete = models.BooleanField(verbose_name="逻辑删除", default=False)
class Meta:
abstract = True
home/models.py
from django.db import models
from utils.model import BaseModel
class Banner(BaseModel):
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='轮播图广告地址')
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模块:dev.py
INSTALLED_APPS = [
# ...
'rest_framework',
'home',
]
设计Banner数据接口
home/serializers.py
from rest_framework.serializers import ModelSerializer
from . import models
class BannerModelSerializer(ModelSerializer):
class Meta:
model = models.Banner
fields = ('name', 'note', 'image', 'link')
home/views.py
from rest_framework.generics import ListAPIView
from utils.response import APIResponse
from . import models, serializers
class BannerListAPIView(ListAPIView):
queryset = models.Banner.objects.filter(is_delete=False, is_show=True).order_by('-orders')
serializer_class = serializers.BannerModelSerializer
home/urls.py
from django.urls import path, re_path
from . import views
urlpatterns = [
path('banners/', views.BannerListAPIView.as_view())
]
最新文章
- C# 实现 任意多边形切割折线算法
- Delphi Mac App 名称支持国际化多语显示
- Mongoose简单学习笔记
- springMVC3 ckeditor3.6 图片上传 JS回调
- gulp.spriteSmith使用
- 1096. Consecutive Factors (20)
- 为Android游戏接入第三方登录功能
- IE 将“通过域访问数据源”设置为启用(注册表)
- UITableView的刷新
- 怎样制作百度recovery【转】
- css befroe after 尾类技术器
- 网站开发进阶(十四)JS实现二维码生成
- PS 滤镜算法原理——照亮边缘
- JavaWeb架构发展
- 【Android】1.2 创建Android模拟器
- 转载->;C#中的委托的使用和讲解
- mysql复制表结构create table as和like的区别
- sql server 数据库学习
- VC++:Debug出错,提示错误在findfile.cpp (Line 369)
- 日期插件My97DatePicker
热门文章
- Django中非视图函数获取用户对象
- CF573E Bear and Bowling(6-1)
- HTTP代理服务器搭建
- H5_0020:判断安卓苹果平台
- Hadoop报错:org.apache.hadoop.security.AccessControlException: Permission denied: user=xxxx
- mysql 连接权限
- execute、executeUpdate、executeQuery的区别
- C++记录(二)
- [MongoDB] 使用PHP在MongoDB中搜索的实现
- Qt中的Label和PushButton背景图自动缩放设置