javaweb表格代碼,web表格增刪改_白話django之數據的增刪改

 2023-11-30 阅读 25 评论 0

摘要:教程源碼: z991/django_turital javaweb表格代碼。 我個人認為web開發中,最重要的是數據庫的設計,就是models的模型設計,web開發說白了就是對數據庫的增刪改查,今天先看下數據庫的增加,修改,和刪除吧,我們操作數據庫

14b1ef1496173d7ec59e4ab76ff8656c.png

教程源碼: z991/django_turital

javaweb表格代碼。 我個人認為web開發中,最重要的是數據庫的設計,就是models的模型設計,web開發說白了就是對數據庫的增刪改查,今天先看下數據庫的增加,修改,和刪除吧,我們操作數據庫可以使用原生sql語句,但是如果sql的操作語句不復雜,不太考慮性能的話,可以使用django的ORM語句,django的ORM是通過一些封裝,根據ORM的語法可以對數據庫增刪改查,用一同一個ORM語句可以支持對mysql,sqlite,PostgreSQL,Oracle等數據庫增刪改操作,兼容性很強。

我現在的model模型是有兩個表,一個學生表,一個班級表,代碼如下:

from django.db import models
from datetime import datetimeclass Student(models.Model): # 一定要繼承# CharField為字符串類型,必須有max_length設置最大長度,verbose_name在django后臺顯示該英文字段的中文意思name = models.CharField(max_length=30, verbose_name="學生姓名")# IntegerField整型age = models.IntegerField(default=16, verbose_name="學生年齡")# DecimalField浮點型,max_digits=5表示整數部分和小數位數之和不大于5,decimal_places表示小數的最大位數,# null=True表示字段可以為空,blank=True表示在admin后臺中該數據欄可以為空score = models.DecimalField(verbose_name='成績', max_digits=5, decimal_places=2, null=True, blank=True)## EmailField該字段必須符合郵箱格式email = models.EmailField(verbose_name='郵箱', null=True, blank=True)# TextField 字段位文本類型,長度沒有限制introduce = models.TextField(verbose_name="學生自我介紹")# DateTimeField為日期類型,auto_now_add=True該條數據創建的時間,數據更新時,時間數值不變# auto_now=True該條數據創建的時間,數據更新時,時間數值也會改變created_at = models.DateTimeField(auto_now_add=True, verbose_name="創建時間")updated_at = models.DateTimeField(auto_now=True, verbose_name="更新時間")# ForeignKey一對多外鍵,比如一個班級有多個學生,就屬于一對多,外鍵要放到"多"的那張表,# related_name是對外鍵取別名,常用在django的orm反向查詢中cls = models.ForeignKey('Class', related_name="stu_cls", null=True)# 下面是django后臺字段顯示控制class Meta:verbose_name_plural = verbose_name = "學生表"def __str__(self):return self.nameclass Class(models.Model): # 班級表name = models.CharField(verbose_name='班級名稱',max_length=10)created_at = models.DateTimeField(auto_now_add=True, verbose_name="創建時間")updated_at = models.DateTimeField(auto_now=True, verbose_name="更新時間")def __str__(self):return self.nameclass Meta:verbose_name = verbose_name_plural = '班級'   

然后進行同步數據庫操作,在命令行輸入:

python manage.py makemigrations
python manage.py migrate

django 增加數據庫字段、

fa56a46cf57dd9850a55b36440b1ddab.png

下面我現在一個views.py文件中寫一個視圖函數,講解orm基本的增刪改操作。記得給函數配置url,通過url調取函數實現視圖函數的功能。

def orm_test(request):# 新增一個名字為1901的一個班級,create是新增方法,里面可以接受多個字段參數# Class.objects.create(name="1901")# 同時新增一個學生和班級操作# 新增一個班級名稱為1903的班級,返回一個班級實例cls_instance = Class.objects.create(name="1903")# stu_info左邊的key要和Student模型字段對應上,因為cls是外鍵,所以要對應一個班級的實例stu_info = {"name":"靜靜","age": "18","score":"67.50","email": "123@qq.com","introduce": "我是靜靜","cls": cls_instance}Student.objects.create(**stu_info)# 將名字為1901的班級名稱改為1901_xiu,filter為過濾,支持多個參數,update是更新方法,支持多個參數# Class.objects.filter(name="1901").update(name="1901_xiu")# 將名字為1901_xiu的班級刪除掉,delete是刪除方法# Class.objects.filter(name="1901_xiu").delete() 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/186372.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息