記錄在使用Django開發過程中遇到的問題No.2

weixin_42393960發表於2020-11-06

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來除錯的,

在這裡插入圖片描述

相關文章