Django后端开发入门-Task02

1、数据表的常用字段和常用配置
1.1 常用字段
CharField用于存储字符串类型
IntegerField用于存储整数类型
FloatField用于存储浮点数类型
BooleanField用于存储布尔类型
DateField用于存储日期类型
DateTimeField用于存储日期和时间类型
ImageField用于存储图片类型
FileField用于存储文件类型
ForeignKey用于表示数据库表之间的外键关联关系
OneToOneField用于表示一对一的关联关系
ManyToManyField用于表示多对多的关联关系
 1.2 常用配置 
max_length字段的最大长度限制,可以应用于多种不同的字段类型
verbose_name字段的友好名称,便于在管理员后台可视化操作时使用
default指定字段的默认值
null指定字段是否可以为空,`null=True`​ 设置允许该字段为 NULL 值
blank指定在表单中输入时是否可以为空白
choices用于指定字段的可选值枚举列表 
2、引入 admin 后台和管理员
2.1 创建 admin 的超级管理员

        python manage.py createsuperuser

2.2 在 admin 文件中引入数据表   

        from django.contrib import admin

        from apps.purchase.models import GoodsCategory, Goods

2.3 注册数据表到 admin

        admin.site.register(Goods) 

        admin.site.register(GoodsCategory) 

3、外键的使用
3.1 给产品表创建一个外键

          category = ForeignKey(GoodsCategory, on_delete=SET_NULL,related_name='goods_set',null=True,verbose_name='产品分类')

        其中on_delete 设置当外键对应的数据被删除时的反应.

3.2 根据分类获取产品

         以下代码来自https://github.com/Joe-2002/sweettalk-django4.2,稍有修改。

        # 函数式编程
          @api_view(['POST', 'GET'])
          def InsertGoodsCategory(request):
                      category_name = request.data.get('分类名字')
                      category, created = GoodsCategory.objects.get_or_create(name=category_name)
      
              # 判断是否已存在分类
              if not created:
                      return Response({"status": "已存在", "goods_category": category_name}, status=200)
              else:
                      return Response({"message": f"Successfully inserted category '{category_name}'."})

          @api_view(['POST','GET'])
          def FilterGoodsCategory(request):
                  data = request.data.get('分类名字')
                  goods = GoodsCategory.objects.filter(name=data)
                  if goods.exists():
                          return Response({"status": "已存在", "goods_category": data}, status=200)
                  else:
                          return Response({"status": "不存在" ,"goods_category": data}, status=404)       

3.3 放入路由

        urls.py

        urlpatterns = [
                path('admin/', admin.site.urls),
                path('filtergoodscategory/', FilterGoodsCategory),
                path('insertgoodscategory/', InsertGoodsCategory),
         ]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值