欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

models模型怎么在Django中使用-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關models模型怎么在Django中使用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

高坪ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

model的常用字段

V=models.CharField(max_length=None[, **options])    #varchar
V=models.EmailField([max_length=75, **options])    #varchar
V=models.URLField([verify_exists=True, max_length=200, **options])    #varchar
V=models.FileField(upload_to=None[, max_length=100, **options])    #varchar
#upload_to指定保存目錄可帶格式,
V=models.ImageField(upload_to=None[, height_field=None, width_field=None, max_length=100, **options])
V=models.IPAddressField([**options])    #varchar
V=models.FilePathField(path=None[, match=None, recursive=False, max_length=100, **options]) #varchar
V=models.SlugField([max_length=50, **options])    #varchar,標簽,內含索引
V=models.CommaSeparatedIntegerField(max_length=None[, **options])    #varchar
V=models.IntegerField([**options])    #int
V=models.PositiveIntegerField([**options])    #int 正整數
V=models.SmallIntegerField([**options])    #smallint
V=models.PositiveSmallIntegerField([**options])    #smallint 正整數
V=models.AutoField(**options)    #int;在Django代碼內是自增
V=models.DecimalField(max_digits=None, decimal_places=None[, **options])    #decimal
V=models.FloatField([**options])    #real
V=models.BooleanField(**options)    #boolean或bit
V=models.NullBooleanField([**options])    #bit字段上可以設置上null值
V=models.DateField([auto_now=False, auto_now_add=False, **options])    #date
#auto_now最后修改記錄的日期;auto_now_add添加記錄的日期
V=models.DateTimeField([auto_now=False, auto_now_add=False, **options])    #datetime
V=models.TimeField([auto_now=False, auto_now_add=False, **options])    #time
V=models.TextField([**options])    #text
V=models.XMLField(schema_path=None[, **options])    #text
——————————————————————————–
V=models.ForeignKey(othermodel[, **options])    #外鍵,關聯(lián)其它模型,創(chuàng)建關聯(lián)索引
V=models.ManyToManyField(othermodel[, **options])    #多對多,關聯(lián)其它模型,創(chuàng)建關聯(lián)表
V=models.OneToOneField(othermodel[, parent_link=False, **options])    #一對一,字段關聯(lián)表屬性

經典情景示例

書籍,作者,出版社之間的關系,這里為了便于演示,我們盡量精簡了表中的字段,書籍表具有書名,出版社同出版社表建立一對多的關系[foreign key],一本書可以具有多個作者,又同作者表建立多對多的關系[many-to-many],作者表有名稱,年齡,出版社表有出版社名稱。

from django.db import models
class Publisher(models.Model):
  name = models.CharField(max_length=30)
 
  def __str__(self):
    return self.name
 
class Author(models.Model):
  name = models.CharField(max_length=30)
  age = models.IntegerField()
 
  def __str__(self):
    return self.name
 
class Book(models.Model):
  title = models.CharField(max_length=100)
  authors = models.ManyToManyField(Author)
  publisher = models.ForeignKey(Publisher,on_delete=models.CASCADE)
 
  def __str__(self):
    return self.title

選擇對象

獲取全體對象

Publisher.objects.all() #獲取所有對象

篩選對象

Publisher.objects.filter(name='人們教育出版社') #獲取的是一個對象列表
dict = {'name':'lemon','age':18}
Author.objects.filter(**dict) #列表傳參的方法

獲取單個對象

Publisher.objects.get(name='機械工業(yè)出版社') #找不到會報錯?。。?/pre>

對象排序

Author.objects.order_by("name","-age") #可以按照多個字段排序,- 表示逆向排序

連查

Author.objects.filter(name='lemon').order_by('-age')[0]

批量更新

Author.objects.all().update(age='18')

刪除對象

Author.objects.filter(name='lemon').delete()

外鍵和多對多操作

訪問外鍵

Book.objects.get(id=1).publisher #得到書籍的出版社

反向查詢

models.Publisher.objects.get(id=1).book_set.all() #反向查詢,得到的是一個queryset對象列表

多對多操作

Book.objects.get(id=1).authors.all() #得到queryset對象列表

自定義models方法

class Author(models.Model):
  name = models.CharField(max_length=30)
  age = models.IntegerField()

  def __str__(self):
    return self.name
  def status(self):
    if self.name=='lemon':
      return '帥哥'

運行結果:

aa = models.Author.objects.get(id=1)
print(aa.status())
———————————————運行結果——————————————————
帥哥

自定義manager管理器

class AuthorManager(models.Manager):
  def name_count(self,str_name):
    return self.filter(name__icontains=str_name).count()
class Author(models.Model):
  name = models.CharField(max_length=30)
  age = models.IntegerField()

  def __str__(self):
    return self.name
  def status(self):
    if self.name=='lemon':
      return '帥哥'
  #一旦定義了新的管理器,默認管理器需要顯示聲明出來才可以使用
  objects = models.Manger() #默認管理器
  object=AuthorManager() #新定義管理器

執(zhí)行結果:

aa = models.Author.object.name_count('lemon')
print(aa) #——————》2

自定義sql語句

class AuthorManager(models.Manager):
  def age_stat(self, age_int):
    cursor = connection.cursor()
    cursor.execute("""
      SELECT NAME
      FROM app2_author
      WHERE age = %s""", [age_int])
    #fetchall()返回的是元組的列表
    return [row[0] for row in cursor.fetchall()]
    
class Author(models.Model):
  name = models.CharField(max_length=30)
  age = models.IntegerField()
  # objects =models.Manager()
  object=AuthorManager()
  def __str__(self):
    return self.name

執(zhí)行結果:

aa = models.Author.object.age_stat(18)
print(aa)
-----------------
['lemon', 'Luouo']

過濾字段發(fā)方法

__exact 精確等于 like 'aaa'
 __iexact 精確等于 忽略大小寫 ilike 'aaa'
 __contains 包含 like '%aaa%'
 __icontains 包含 忽略大小寫 ilike '%aaa%',但是對于sqlite來說,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一個list范圍內
__startswith 以...開頭
__istartswith 以...開頭 忽略大小寫
__endswith 以...結尾
__iendswith 以...結尾,忽略大小寫
__range 在...范圍內
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False

關于models模型怎么在Django中使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

新聞名稱:models模型怎么在Django中使用-創(chuàng)新互聯(lián)
文章出自:http://aaarwkj.com/article20/ccpoco.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站導航網站內鏈、網站維護微信小程序、做網站網站設計公司

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網站建設
极品美女被插到高潮喷水| 91看看午夜福利视频| 欧美日韩综合人妻丝袜偷拍| 国产一区999精品在线| 乱色视频中文字幕在线着| 亚洲av一区二区三区| 日韩人妻一级免费视频| 日本97久久久久久精品| 正在播放蜜臀av在线| 欧美日韩中文国产天堂| 国产精品熟女亚洲av| 国产精品av国产精华液| 日韩欧美中文字幕一区二区| 男女在线视频网站免费| 日本在线人妻中文字幕| 欧美日韩国产免费,日日骚| 亚洲综合一区二区在线视频| 91在线看片国产免费观看| 欧美日韩国产精品一区二区在线观看| 亚洲精品中国一区二区久久| 91久久精品国产一区蜜臀| 亚洲区一区二区三区精品| 久久精品欧美日韩视频| 后入蜜桃臀美女在线观看| 开心久久婷婷综合中文字幕| 国产日韩视频一区二区| 四虎久久久最新网址| 91麻豆亚洲国产成人久久精品| 97在线观看视频免费| 亚洲一区二区三区久久伊人| 日韩激情小视频在线观看| 人妻有码中文字幕在线| 女人高潮被爽到呻吟在线| 国产亚洲欧美成人精品久久| 亚洲日本中文字幕免费观看 | 国产亚洲成人精品一区| 熟妇人妻内射一区二区三区| 午夜福利日本一区二区| 国产一级二级三级大胆视频| 欧美日韩精品综合国产| 亚洲成人免费电影久久|