Django开发_10_模型创建

一、在APP下的models.py文件中创建类,继承model

通用中文网站页面参考模板:

from django.db import models


class Fruits(models.Model):
    Fruit_name = models.CharField(max_length=32, verbose_name="水果名称")
    Fruit_price = models.FloatField(verbose_name="水果价格")

    class Meta:
        db_table = "Fruits"  # 数据库中表的名称
        verbose_name = "水果价格表"  # 页面展示中文显示
        verbose_name_plural = verbose_name  # 中文显示复数与单数一致,防止出现水果价格表s的情况

    def __str__(self):
        return self.Fruit_name  # 页面显示中文水果名称

二、生成迁移计划、执行迁移任务

(一)生成迁移计划

在pycharm下方终端输入命令代码:

python manage.py makemigrations

(二)执行迁移任务

在pycharm下方终端输入命令代码:

python manage.py migrate

三、模型基本操作

pychaem进入shell环境

python manage.py shell

引入my_app下models.py文件内的模板

from my_app.models import *

参考博文:

(一)增

1.对象管理器
Fruits.objects.create(Fruit_name="apple",Fruit_price=18)
2.实例化对象
f=Fruits(Fruit_name="grape",Fruit_price=12)
f.save()

(二)删

以实例化对象方式删除

f.delete()

(三)改

以实例化对象方式修改

f=Fruits(Fruit_name="grape",Fruit_price=12)
f.Fruit_name='watermelon' #修改水果名字从grape→watermelon
f.save()

(四)查

查询都是以对象管理器的方式进行查询

1.简单查询

类名.objects.all()

f=Fruits.objects.all()
f[1].Fruit_price
2.过滤查询

类名.objects.filter(条件1)

魔法函数:

__contains                #包含

__startswith              #以*为开始

__endswith               #以*为结尾

__gte                        #大于等于

__gt                          #大于

__lte                         #小于等于

__lt                           #小于

__year                      #年

__month                   #月

__day                       #日

3.排除查询

类名.objects.exclude(条件1)        #查询不满足条件1的对象

4.切片查询

类名.objects.all()[0:1]        #返回Set集合类型,可以用切片方法

5.排序查询

类名.objects.order_by("类的属性名")        #默认按照该属性名升序排列

类名.objects.order_by("-类的属性名")         #降序排列

6.原生查询

代码繁琐,不建议使用

条件:搜索条件包含id或者用*;2个%%

format格式输出:

7.Q查询
from django.db.models import Q    #与& 或| 非~

配合过滤查询使用

8.F查询

跳过代码层级,直接进行数据库的修改操作

from django.db.models import F
9.聚合查询

类名.objects.aggregate(函数名("类的属性名"))

10.分组查询

类名.objects.values("类的属性名1").annotate(Avg("类的属性名2"))

values 用于分组

annotate 要查询的项目

实现效果就是根据属性名1下有多少个不同的数据,就会分成多少组,然后每个组根据属性名2分别查询到相应的项目

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值