国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django中數據庫的數據關系:一對一,一對多,多對多

2020-02-15 23:18:09
字體:
來源:轉載
供稿:網友

一對一:

一對一的關系極為一個數據僅對應一個數據,用下圖的結構圖可以幫助理解:

下面用代碼實現一下,首先要創建工程項目如下:

接著,我們定義模型:

來到models.py文件,創建兩個模型:

from django.db import models# Create your models here.class One(models.Model):  oname = models.CharField(max_length=20,null=True)  oage = models.CharField(max_length=20,null=True)  odate = models.DateField(null=True)class Two(models.Model):# 設置一對一關系,是通過將表中的字段設置為主鍵完成的# on_delete=models.CASCADE 當父表中的某一條數據刪除的時候  # 相關字表中的數據也會被刪除  tsub = models.OneToOneField(One,on_delete=models.CASCADE,primary_key=True)  tfond = models.CharField(max_length=20,null=True)  tdes = models.CharField(max_length=200,null=True)

來到myPro文件夾下添加以下兩句代碼:

import pymysqlpymysql.install_as_MySQLdb()

下面可以遷移文件:

python manage.py makemigrationspython manage.py migrate

這樣我們就創建了兩個表:

來到views.py文件中添加數據,代碼如下:

from django.shortcuts import renderfrom .models import One,Two# Create your views here.def index(request):  o1 = One.objects.create(oname='張三',oage=11,odate='2011-11-11')  o2 = One.objects.create(oname='張三2',oage=12,odate='2012-12-12')  t1 = Two.objects.create(tsub=o1,tfond='o1',tdes='我喜歡o1')  t2 = Two.objects.create(tsub=o2,tfond='o2',tdes='我喜歡o2')  return render(request,'index.html')

運行之后,將添加數據的代碼注釋掉,否則后面每運行一次都會添加。

下面,我們通過查詢數據來甄別其中的關系。

def select(request):  t1 = Two.objects.get(tsub__oname = '張三')  return render(request,'index.html',{'t1':t1})

一對多

即一個對象對應著對個對象。

創建模型代碼:

from django.db import models# Create your models here.class People(models.Model):  name = models.CharField(max_length=50)  card_num = models.IntegerField(default=0)class Card(models.Model):  number = models.CharField(max_length=20)  person = models.ForeignKey(People,on_delete=models.CASCADE)  source = models.CharField(max_length=50)

urls.py路由設置:

from django.contrib import adminfrom django.urls import pathfrom myApp import viewsurlpatterns = [  path('admin/', admin.site.urls),  path('add/',views.add),  path('select/',views.select),]            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 休宁县| 合作市| 雷州市| 曲靖市| 孟村| 周宁县| 吉木萨尔县| 兴隆县| 祁东县| 伊通| 华安县| 浠水县| 沁源县| 荥经县| 沙洋县| 松原市| 郯城县| 澜沧| 马关县| 南昌县| 深泽县| 离岛区| 正镶白旗| 陈巴尔虎旗| 长乐市| 岳普湖县| 当雄县| 三门县| 原平市| 德庆县| 崇左市| 吴忠市| 满洲里市| 阿鲁科尔沁旗| 叙永县| 临桂县| 平舆县| 黑水县| 曲松县| 玛纳斯县| 应用必备|