记录在使用Django开发过程中遇到的问题No.2

1、在一个settings.py的文件中添加上新增的模块名称,如,demos;配置mysql的地址\端口…的

在这里插入图片描述
在这里插入图片描述

2、通知django模型变化了,终端输入:

python manage.py makemigrations demos

3、接下来可以在新增的模块中写代码了,比如demos模块.首先在demos下的models.py中写实体类, 写完之后呢,终端输入python manage.py migrate创建表结构,成功之后去第1步里配置的数据库可以看到自动生成的表格。我这用外键的方式绑定了一张子表,models.ForeignKey(User,on_delete=models.CASCADE,default=""),第一个参数是主表,第二个参数代表当主表删除是,子表执行什么操作,models.CASCADE代表的意思是主表删除,子表也会自动删除

from django.db import models

# Create your models here.
class User(models.Model):
    id = models.AutoField(primary_key=True)   #注意 这里自动创建的id是int类型
    number = models.IntegerField(null=True) 
    create_date = models.DateTimeField(null=True)  
class WorkExperience(models.Model):
    id = models.AutoField(primary_key=True)
    time_range = models.CharField(max_length=100)
    user = models.ForeignKey(User,on_delete=models.CASCADE,default="")  #User作为外键,当User删除时,WorkExperenxe也会删除

4、下面写接口了,子表外键赋值方式是直接把父表对象赋给子表的外键字段了

from django.http import HttpResponse,JsonResponse
from users.models import User,WorkExperience
import json
from django.core import serializers
import time

def userAdd(request):
    if request.method == "POST":
        req = json.loads(request.body)  #json格式数据获取 ,这里获取的是前端录入的数据
        id = req.get("id")
        number = req.get("number ")
        create_date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()  #当前时间
        userAdd = User(   #这是把上面的数据封装到实体类对象
            id = id,
            number=number,
            )
        userAdd.save()   #对象保存

        # 获取工作经历的list
        workList = req["workExperience"]
        for dictory in workList:   
            worKId = dictory.get("id")
            time_range = dictory["timeRange"]
            user = userAdd    子表的外键: 注意 这里是直接把主表对象赋给外键了
            WorkExperienceAdd = WorkExperience(
                id=worKId,
                time_range = time_range,
                user = user
            )
            WorkExperienceAdd.save()  #保存子表
            # return JsonResponse({"user":user.id,"worKId":WorkExperienceAdd.id})  这是测试用的,返回保存后主表和子表的id

        return JsonResponse({"code":"SUCCESS","msg":"publish user sucess."})  #保存子表

5、写完之后,在settings.py同一目录下找到一个叫urls.py的文件,添加路径。

from django.contrib import admin
from django.urls import path
from demos.src.user import userAdd  #导入接口  
urlpatterns = [
    path('userAdd/',userAdd),  #配置路径
]

6、配置完之后,终端输入python manage.py runserver 9000在指定端口运行,9000是端口号,可以改变的,运行成功终端会返回一个地址给你,复制地址,在后面加上第5步配置的接口路径,就可以访问了,我用的poseman来调试的,

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值