Ddavid_1366677BigData体验项目
c8362ae1创建于 2024年12月20日历史提交

为体验项目扩展功能

体验项目 OpenSourceForHuaweiDemoPython ,主要提供了基础功能,对具体的业务,并没有提供相关代码。为了让大家更好的体验Demo,接下来给大家新增一个新增接口(RESTful API-POST method)

扩展过程

  • 路由系统:因Demo已默认处理好,故不用额外操作
  • 模型类(framework_core/models.py):
from django.db import models


class User(models.Model):
    username = models.CharField(max_length=150, unique=True)  # 用户名,唯一
    age = models.PositiveIntegerField()  # 年龄,正整数

    def __str__(self):
        return self.username

温馨提示:如果GaussDB上还没有创建数据表,请执行如下命令对数据库进行迁移操作。

a. python manage.py makemigrations:生成记录模型变化的迁移文件,描述对数据库结构的修改(如创建表、添加字段等)。

python manage.py makemigrations

b. python manage.py migrate:执行迁移文件,将其中描述的数据库更改实际应用到数据库中。

python manage.py migrate
  • 视图类(framework_core/views.py):
from django.views import View
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
from .models import User


@method_decorator(csrf_exempt, name='dispatch')
class UserView(View):
    # 创建 User(POST)
    def post(self, request, *args, **kwargs):
        username = request.POST.get("username")
        age = request.POST.get("age")

        if username and age:
            user = User.objects.create(username=username, age=age)
            # 返回成功的响应
            return JsonResponse({
                "message": "User created successfully",
                "id": user.id,
                "username": user.username,
                "age": user.age
            }, status=201)
        return JsonResponse({"error": "Username and age are required."}, status=400)


注意:此代码只作为Demo演示使用,在后续适配开发过程中,请根据实际场景,开发代码,此Demo仅供参考。

  • 启动服务
python manage.py runserver 0.0.0.0:8000
  • 通过Postman查看新增的RESTful API效果