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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

54 Django 模型层(1) 单表查询

發布時間:2024/4/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 54 Django 模型层(1) 单表查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

單表操作:

一 項目的操作順序:
1 在model.py文件中創建表結構
class Book(models.Model):
id=models.AutoField(primary_key=True)
title=models.CharField(max_length=32)
price=models.DecimalField(max_digits=5,decimal_places=2)
publish=models.CharField(max_length=32)
pub_date=models.DateTimeField()

2 連接數據庫創建表
(1)先創建數據庫bms
(2)配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'bms',      # 要連接的數據庫,連接前需要創建好
'USER':'root',       # 連接數據庫的用戶名
'PASSWORD':'',       # 連接數據庫的密碼
'HOST':'127.0.0.1', # 連接主機,默認本級
'PORT':3306     # 端口 默認3306
}
}
DATABASES = { 'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'bms',# 要連接的數據庫,連接前需要創建好 'USER': 'root',# 連接數據庫的用戶名 'PASSWORD': '',# 連接數據庫的密碼 'HOST': '127.0.0.1', # 連接主機,默認本級 'PORT':3306# 端口 默認3306 },'app1': {'ENGINE': 'django.db.backends.mysql','NAME': 'bms',# 要連接的數據庫,連接前需要創建好 'USER': 'root',# 連接數據庫的用戶名 'PASSWORD': '',# 連接數據庫的密碼 'HOST': '127.0.0.1', # 連接主機,默認本級 'PORT':3306# 端口 默認3306 },'app2': {'ENGINE': 'django.db.backends.mysql','NAME': 'bms',# 要連接的數據庫,連接前需要創建好 'USER': 'root',# 連接數據庫的用戶名 'PASSWORD': '',# 連接數據庫的密碼 'HOST': '127.0.0.1', # 連接主機,默認本級 'PORT':3306# 端口 默認3306 } } 不同app 可以配置不同的數據庫
(3)數據庫遷移

python manage.py makemigrations
python manage.py migrate

KEY: Django在執行遷移命令時只會為settings中install_app中的應用中的models創建表結構

3 啟動項目: python manage.py runserver

二 表記錄操作

(1) 添加記錄
# 方式1
book=Book(title="",price="",publish="",pub_date="2012-12-12")
book.save()
# 方式2
book=Book.objects.create(title="",price="",publish="",pub_date="2012-12-12")
print(book.id)
print(book.title)

(2) 查詢記錄

KEY:queryset數據類型

Book.objects.all() # 返回queryset對象 [obj,obj2,obj3,...]
Book.objects.all()first() # Book模型類對象
Book.objects.all().last() # Book模型類對象
Book.objects.filter(title="python") # 返回queryset對象 [obj,obj2,obj3,...]
Book.objects.get(title="python") # Book模型類對象
Book.objects.exclude(title="python") # 返回queryset對象 [obj,obj2,obj3,...]
Book.objects.all().count() # 返回int
Book.objects.all().order_by("-price")# 返回queryset對象
Book.objects.all().order_by("-price").reverse() # 返回queryset對象
Book.objects.all().exist() # 返回布爾值
Book.objects.all().values("title") # 返回queryset對象 [{"title":""},{"title":""}]
Book.objects.all().values_list("title","price") # 返回queryset對象 [("python",122),("linux",233)]
Book.objects.all().values("price").distinct()

模糊查詢:
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__in=[100,200,300])
Book.objects.filter(price__range=[100,200])
Book.objects.filter(title__startswith="py")
Book.objects.filter(title__contains="py")
Book.objects.filter(title__icontains="py")
Book.objects.filter(pub_date__year="2012")

(3) 刪除

Book.objects.all().delete()
Book.objects.get(id=1).delete()
(4) 更新

Book.objects.filter(id__gt=5).update(price=100)




例子:
1 查詢老男孩出版社出版過的價格大于200的書籍
Book.objects.filter(price__gt=200,publish="老男孩出版社")

2 查詢2017年8月出版的所有以py開頭的書籍名稱
Book.objects.filter(title__startswith="py",pub_date__year=2017,pub_date__month=8).values("title")

3 查詢價格為50,100或者150的所有書籍名稱及其出版社名稱
Book.objects.filter(price__in=[50,100,150]).values("title","publish")

4 查詢價格在100到200之間的所有書籍名稱及其價格
Book.objects.filter(price__range=[100,200]).values("title","price")

5 查詢所有人民出版社出版的書籍的價格(從高到低排序,去重)
Book.objects.filter(publish="人民出版社").order_by("-price").values("price").distinct()

?

單表查詢連接數據庫具體步驟:

1.創建表,在app model.py文件中,創建

2.數據庫中,先創建好庫,命名為bms

?3.配置settings

4.確保配置文件中已經配置好了自己的應用

5.app 應用中,__init__.py 文件中加上:

import?pymysql

pymysql.install_as_MySQLdb() 6.執行 python manage.py makemigrations python manage.py migrate 7.可能出現的問題和解決辦法

?

轉載于:https://www.cnblogs.com/knighterrant/p/10209923.html

總結

以上是生活随笔為你收集整理的54 Django 模型层(1) 单表查询的全部內容,希望文章能夠幫你解決所遇到的問題。

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