创建模型并实现接口

创建用户表,必须有mobile手机字段且必须唯一

from django.db import models
class UserModel(models.Model):
    name = models.CharField(max_length=55, verbose_name="姓名")
    mobile = models.CharField(max_length=11, unique=True, verbose_name="手机号码")

    class Meta:
        db_table = 'test_users'
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name

数据迁移,终端下项目根目录运行

python manage.py makemigrations
python manage.py migrate

接口实现

class UserModelView(APIView):
    
    # 获取所有用户
    def get(self, req):
        queryset = list(UserModel.objects.values())
        
        return JsonResponse(data=queryset, safe=False)

    # 添加一个用户
    def post(self, req):
        data = json.loads(req.body)
        name = data.get('name')
        mobile = data.get('mobile')
        
        queryset = UserModel.objects.create(
            name=name,
            mobile=mobile,
        )
        
        return JsonResponse(data={
            'id': queryset.id,
            'name': queryset.name,
            'mobile': queryset.mobile
        }, status=201)


class UserModelOne(APIView):
    
    # 获取一个用户
    def get(self, req, pk):
        try:
            queryset = UserModel.objects.get(pk=pk)
            
            return JsonResponse(data={
                'id': queryset.pk,
                'name': queryset.name,
                'mobiel': queryset.mobile
            }, status=200)
        except:
            return JsonResponse(data=None, status=404)

    # 删除一个用户
    def delete(self, req, pk):
        try:
            UserModel.objects.get(pk=pk).delete()
        except:
            pass
        return JsonResponse(data={}, status=201)

    # 修改一个用户
    def put(self, req, pk):
        data = json.loads(req, body)
        name = data.get('name')
        mobile = data.get('mobile')
      
        try:
            # 操作数据库
            queryset = UserModel.objects.get(pk=pk)
            queryset.name = name
            queryset.mobile = mobile
            queryset.save()
        except:
            return JsonResponse(data={}, status=404)

        return JsonRespnse(data={
            'id': queryset.pk,
            'name': queryset.name,
            'mobile': queryset.mobile
        }, status=201)
posted @   vetra  阅读(52)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示