当前位置: 首页 > news >正文

本地网站搭建工具自己做的网站怎么发布视频教程

本地网站搭建工具,自己做的网站怎么发布视频教程,品牌营销网站建设流程,网站制作程序下载用drf编写 1 有车型(CarModel)#xff0c;车厂#xff08;CarFactory#xff09;#xff0c;经销商(Distributor)三个表, 一个车厂可以生产多种车型#xff0c;一个经销商可以出售多种车型#xff0c;一个车型可以有多个经销商出售车型#xff1a;车型名#xff0c;车型…用drf编写 1 有车型(CarModel)车厂CarFactory经销商(Distributor)三个表, 一个车厂可以生产多种车型一个经销商可以出售多种车型一个车型可以有多个经销商出售车型车型名车型出厂价车厂id车厂车厂名车厂地址联系电话经销商经销商名地址联系电话 2 有用户表基于django内置user表扩展mobile字段 3 编写登陆接口jwt方式返回token格式为{status:100,msg:登陆成功tokensafasdfa} 4 所有接口除登录外必须登录后才能访问 5 管理员登陆后可以增删单查群查改 车型车厂经销商(具备所有接口权限) 6 普通用户登陆可以查看车型车厂经销商单条所有(只有查看权限) 7 所有查询所有接口带分页功能 8 查询所有车型接口可以按车型名字精准过滤加分项 用户注册接口 管理员有用户锁定删除用户功能models.py from django.db import modelsfrom django.contrib.auth.models import AbstractUserclass User(AbstractUser):mobile models.CharField(max_length32, verbose_name联系电话)# 车型 class CarModel(models.Model):name models.CharField(max_length32, verbose_name车型名)init_price models.IntegerField(verbose_name出厂价)factory models.ForeignKey(toCarFactory, on_deletemodels.CASCADE, verbose_name车厂id)distributors models.ManyToManyField(toDistributor, verbose_name经销商)class Meta:verbose_name_plural 经销商表def __str__(self):return self.namedef factory_info(self):车厂信息return {name: self.factory.name, addr: self.factory.addr, mobile: self.factory.mobile}def distributor_info(self):经销商信息distributor_info_list []for distributor in self.distributors.all():distributor_info_list.append({name: distributor.name, addr: distributor.addr,mobile: distributor.mobile})return distributor_info_list# 车厂 class CarFactory(models.Model):name models.CharField(max_length32, verbose_name车厂名)addr models.CharField(max_length32, verbose_name车厂地址)mobile models.CharField(max_length32, verbose_name联系电话)class Meta:verbose_name_plural 经销商表def __str__(self):return self.name# 经销商 class Distributor(models.Model):name models.CharField(max_length32, verbose_name经销商名)addr models.CharField(max_length32, verbose_name地址)mobile models.CharField(max_length32, verbose_name联系电话)class Meta:verbose_name_plural 经销商表def __str__(self):return self.name 新建一个jwt_response.py验证登录 def jwt_response_payload_handler(token, user, request):return {code: 100,msg: 登录成功,token: token}新建一个exceptions.py验证错误 from rest_framework.views import exception_handler from rest_framework.response import Responsedef common_exception(exc, context):res exception_handler(exc, context)if not res:return Response({code: 999, msg: f非drf错误错误信息是{str(exc)}})return Response({code: 666, msg: f这是drf错误错误信息是{res.data.get(detail)}}) settings.py配置文件中 JWT_AUTH {JWT_RESPONSE_PAYLOAD_HANDLER: app01.jwt_response.jwt_response_payload_handler,JWT_EXPIRATION_DELTA: datetime.timedelta(days1) }REST_FRAMEWORK {EXCEPTION_HANDLER: app01.exceptions.common_exception, }新建page.py分页 from rest_framework.pagination import PageNumberPaginationclass MyPageNumberPagination(PageNumberPagination):page_size 3 # 每页显示3条max_page_size 5 # 每页最大显示5条 新建serializer.py分页 from rest_framework import serializersfrom app01.models import User, CarModel, CarFactory, Distributorclass UserSerializer(serializers.ModelSerializer):class Meta:model Userfields [username, password, mobile]extra_kwargs {password: {write_only: True}}def create(self, validated_data):user User.objects.create_user(**validated_data)return userclass CarModelSerializer(serializers.ModelSerializer):class Meta:model CarModelfields [id, name, init_price, factory, distributors, factory_info, distributor_info]extra_kwargs {factory: {write_only: True},distributors: {write_only: True},factory_info: {read_only: True},distributor_info: {read_only: True},}class CarFactorySerializer(serializers.ModelSerializer):class Meta:model CarFactoryfields __all__class DistributorSerializer(serializers.ModelSerializer):class Meta:model Distributorfields __all__ 新建permission.py权限 from rest_framework.permissions import BasePermission from rest_framework.exceptions import AuthenticationFailedclass MyPermission(BasePermission):def has_permission(self, request, view):print(view.action)if not request.user.is_superuser and request.method ! GET:raise AuthenticationFailed(普通用户权限不足)return True views.py视图中 from rest_framework.viewsets import ViewSet from rest_framework.generics import GenericAPIView from rest_framework.mixins import CreateModelMixinfrom .models import User from .serializer import UserSerializerfrom rest_framework.response import Responseclass UserView(ViewSet, GenericAPIView, CreateModelMixin):queryset User.objects.all()serializer_class UserSerializerdef create(self, request, *args, **kwargs):ser self.get_serializer(datarequest.data)if ser.is_valid():ser.save()return Response({code: 100, msg: 注册成功, result: ser.data})return Response({code: 101, msg: 注册失败, result: ser.errors})from rest_framework.mixins import DestroyModelMixin from rest_framework_jwt.authentication import JSONWebTokenAuthentication from rest_framework.permissions import IsAuthenticated, IsAdminUser from rest_framework.decorators import actionclass AdminView(ViewSet, GenericAPIView, DestroyModelMixin):queryset User.objects.all()authentication_classes [JSONWebTokenAuthentication]permission_classes [IsAuthenticated, IsAdminUser]# detailTrue 表示可以删除单个资源action(methods[DELETE], detailTrue)def delete_user(self, request, *args, **kwargs):return self.destroy(request, *args, **kwargs)action(methods[GET], detailTrue)def lock(self, request, *args, **kwargs):user self.get_object()if user is None:return Response({code: 101, msg: 用户不存在})if user.is_active:user.is_active Falseuser.save()return Response({code: 100, msg: 用户锁定成功})return Response({code: 102, msg: 用户已经被锁定})action(methods[GET], detailTrue)def unlock(self, request, *args, **kwargs):user self.get_object()if user is None:return Response({code: 101, msg: 用户不存在})if user.is_active is False:user.is_active Trueuser.save()return Response({code: 100, msg: 用户解锁成功})return Response({code: 102, msg: 用户已经解锁过了})from rest_framework.viewsets import ModelViewSetfrom .models import CarModel from .serializer import CarModelSerializer from .permissions import MyPermission from .page import MyPageNumberPaginationfrom django_filters.rest_framework import DjangoFilterBackendclass CarModelView(ModelViewSet):queryset CarModel.objects.all()serializer_class CarModelSerializer# 认证authentication_classes [JSONWebTokenAuthentication]# 权限permission_classes [IsAuthenticated, MyPermission]# 分页pagination_class MyPageNumberPagination# 过滤filter_backends [DjangoFilterBackend]filterset_fields [name]from .models import CarFactory from .serializer import CarFactorySerializerclass CarFactoryView(ModelViewSet):queryset CarFactory.objects.all()serializer_class CarFactorySerializerpagination_class MyPageNumberPaginationauthentication_classes [JSONWebTokenAuthentication]permission_classes [IsAuthenticated, MyPermission]from .models import Distributor from .serializer import DistributorSerializerclass DistributorView(ModelViewSet):queryset Distributor.objects.all()serializer_class DistributorSerializerpagination_class MyPageNumberPaginationauthentication_classes [JSONWebTokenAuthentication]permission_classes [IsAuthenticated, MyPermission] urls.py路由中 from django.contrib import admin from django.urls import path, includefrom rest_framework_jwt.views import obtain_jwt_tokenfrom rest_framework.routers import SimpleRouterfrom app01.views import UserView, AdminView, CarModelView, CarFactoryView, DistributorViewrouter SimpleRouter()router.register(user, UserView, user) router.register(admin, AdminView, admin)router.register(carMode, CarModelView, carMode) router.register(carFactory, CarFactoryView, carFactory) router.register(distributor, DistributorView, distributor)urlpatterns [path(login/, obtain_jwt_token),path(, include(router.urls)) ]
http://www.zqtcl.cn/news/30647/

相关文章:

  • 老榕树智能建站软件寿宁建设局网站
  • 博星卓越营销网站设计报告总结网站建设实验
  • 山东兴润建设有限公司网站wordpress 图片本地化
  • 做网站现在赚钱吗深圳公司排名100强
  • 学校网站建设的应用意义案例东莞 营销网站
  • 没有后台的网站怎么做排名怎么制作网站小游戏
  • 南昌企业网站建设公司哪个好公司网站开发费计入办公费
  • 上海网站设计专注乐云seo网站正在建设中代码
  • 网站首页动图怎么做电商网站建设精英
  • 红色系列的网站点餐网站模板
  • js 网站源码为什么只有中国做网站需要备案
  • 网站建设需要什么能力关键词推广优化外包
  • 攀枝花市住房和城乡建设局网站优普道建筑网校
  • 云脑网络科技网站建设汕头做网站
  • 旅游电子商务网站建设规划书网站建设阿里巴巴
  • 平顶山做网站哪家好在线crm在线oa免费
  • 照片分享网站模板下载企业网站建设费多少钱
  • 南宁企业网站建设中国建筑人才网app下载
  • 网站运营托管做网站按什么收费多少钱
  • 做电子商务网站做网站后端
  • 建立网站要多少钱一年做网站从什么做起
  • 培训机构网站给网站做脚本算违法吗
  • xxx网站建设与优化推广亚马逊免费视频
  • html5做网站导航超能力联盟网站
  • 有哪些可以做网站的平台建设营销型网站哪家好
  • 做网站主要来源wordpress怎么社交分享插件
  • 网站 按钮 素材移动端芯片综合性能排行榜
  • 做网站公司的未来兴海县网站建设公司
  • 健身网站开发背景及意义ui设计平均工资
  • 北京城建道桥建设有限公司网站如何新建网页