日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django04-1: ORM增删改查

發布時間:2023/12/4 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django04-1: ORM增删改查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ORM 增刪改查

一、字段增加

#終端輸入

1.model里添加字段,

2.執行遷移命令。

3.終端里輸入默認值,繼續執行遷移命令。

#允許為空

再null=true,終端不需要輸入默認值

#設置默認值

defalult=‘xxxx‘

?

二、字段修改

1.直接修改代碼,

2,執行遷移兩條命令。

?

三、字段刪

1.對應字段注釋;

2.執行遷移兩條命令;

警告:執行完畢字段對應數據刪除,不要輕易操作

a.遷移命令執行前,注意查看修改代碼。

b.離開計算機鎖屏。

?

數據增刪改查

1.查數據

a. code

res=models.User.objects.filter(username=username) #<querySet[<User:User object>] >類型 #可以索引,切片操作,不能負數。 #不推薦索引,推薦first()user_obj=models.User.objects.filter(username=username).first() pw=user_obj.password#filter(username=username,password=password) #關系是and。相當于where#------------全部查找------------- #方法一 data=models.user.objects.filter()#方式二 models.user.objects.all()

b. html 展示

補全,for+tag

<table class="table table-bordered"><thead><tr><th>#</th><th>id</th><th>書名</th><th>出版社名稱</th><th>操作</th></tr></thead><tbody>{% for i in all_book %}<tr><td>{{ forloop.counter }}</td><td>{{ i.id }}</td><td>{{ i.title }}</td><td>{{ i.publisher.name }}</td><td><a class="btn btn-danger" href="/delete_book/?id={{ i.id }}">刪除</a><a class="btn btn-info" href="/edit_book/?id={{ i.id }}">編輯</a></td></tr>{% endfor %}</tbody> </table>

?

2.增數據

#第一種方法 res=models.User.objects.creat(username=username,password=passoword) #返回值,當前被創建本身。#第二種方法 user_obj=models.User(username=username,password=password) User_obj.save() #保存數據

?

3.編輯數據

將編輯按鈕所在一行的主鍵值發送后端

利用?后面攜帶參數形式

href="/edit_book/?id={{ i.id }}" # 取到編輯的書的id值edit_id = request.GET.get("id")# 根據id去數據庫中把具體的書籍對象拿到edit_book_obj = models.Book.objects.get(id=edit_id) #get 請求id 網址帶?形式 edit_id = request.GET.get("id")if request.method == "POST":# 從提交的數據里面取,書名和書關聯的出版社#內置idedit_id = request.POST.get("id")new_title = request.POST.get("book_title")new_publisher_id = request.POST.get("publisher")#更新 方法一 批量更新models.Book.objects.filter(id=edit_id).update(book_title=new_title ,publisher=new_publisher_id )#只修改更新的# 更新 方法二 單獨更新。重新賦值,并保存edit_book_obj = models.Book.objects.get(id=edit_id)edit_book_obj.title = new_title # 更新書名edit_book_obj.publisher_id = new_publisher_id # 更新書籍關聯的出版社# 將修改提交到數據庫edit_book_obj.save()# 缺點是,如果字段多,更新效率低# 重新把字段寫一遍,無論修改或不修改# 返回書籍列表頁面,查看是否編輯成功return redirect("/book_list/")

?

4.刪除數據

與編輯功能邏輯相似。

delete_id = request.GET.get("id") # 從URL里面取數據#批量刪除 models.Book.objects.filter(id=delete_id).delete()

ps:

a. 刪除功能需要二次確定。

b. 內部不是真正刪除。內部有個刪除字段,僅僅修改狀態。查看不顯示。

?

?

?

?

?

總結

以上是生活随笔為你收集整理的Django04-1: ORM增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。