当前位置: 首页 > news >正文

搜维斯网站建设上传网站到空间

搜维斯网站建设,上传网站到空间,软件外包服务内容,长沙58同城招聘信息-- models.py-- ORM(object-relation mapping) 实现数据模型与数据库的解耦#xff1b;# 对象#xff0c;关系#xff0c;映射#xff1b;1.根 据对象的类型生成表结构#xff1b;2.将对象、列表的操作#xff0c;转换为sql语句#xff1b;3.将sql查询到的结果转换为对象… -- models.py-- ORM(object-relation mapping) 实现数据模型与数据库的解耦# 对象关系映射1.根 据对象的类型生成表结构2.将对象、列表的操作转换为sql语句3.将sql查询到的结果转换为对象、列表-- 字段类型# 所有字段类型被定义在django.db.models.fields目录下# 方便使用被导入到django.db.models中1.AutoField 自动增长 # 通常不用指定2.BooleanField 布尔类型3.NullBooleanField 支持布尔值与null4.CharField(max_length长度) 字符串 # 必须指定最大长度5.TextFeild 大文本字段6.IntegerField 整数7.DecimalField(max_digitsNone,decimal_placesNone) # 浮点数总位数小数位数8.DateField([auto_nowFalse, auto_now_addFalse]) # 保存对象时间创建对象时间9.TimeField 时间 # 同DateField10.DateTimeField 日期时间 # 同DateField11.FileField 上传文件时间12.ImageField # 继承与FileField,对上传内容进行校验13.BigIntegerField 64位整数14.SmallIntegerField-- 字段命名限制1.非python保留字2.不能有连续下划线查询中有-- 字段选项(数据库中的约束)1.null 2.blank3.db_column  # 自定义字段名4.db_index5.default6.primary_key7.unique-- 关系字段类型1.ForeignKey 一对多manufacturer.car_set.all()2.OneToOneField 一对一3.ManyToManyField 多对多-- 元选项# 创建模型类之后自定义表名 class Meta: 自定义表名 db_table  bookinfo # 在生成迁移之后的0001——initial.py文件中多处一个 # option{ db_table:bookinfo  # 表示表的名字已经被自定义了 # 默认生成的表的名字是:应用名_小写的模型类名 # 如booktest_heroinfo; } # 表示当前不是模型类模型不会被用来创建所有数据表 class Meta: 表示当前类不是模型类,而是其他模型的抽象基类 abstract  True # 继承模型类调用其方法-- 测试数据# class BookInfo(models.Model): # btitle  models.CharField(max_length20) # bpub_date  models.DateTimeField() # bread  models.IntegerField(default0) # bcomment  models.IntegerField(default0) # isDelete  models.BooleanField(defaultFalse) # class Meta: # db_table  bookinfo # class HeroInfo(models.Model): # hname  models.CharField(max_length20) # hgender  models.BooleanField(defaultTrue) # isDelete  models.BooleanField(defaultFalse) # hcontent  models.CharField(max_length100) # hbook  models.ForeignKey(BookInfo) # insert into bookinfo(btitle,bpub_date,bread,bcomment,isDelete) values # (射雕英雄传,1980-5-1,12,34,0), # (天龙八部,1986-7-24,36,40,0), # (笑傲江湖,1995-12-24,20,80,0), # (雪山飞狐,1987-11-11,58,24,0); # insert into model_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values # (郭靖,1,1,降龙十八掌,0), # (黄蓉,0,1,打狗棍法,0), # (黄药师,1,1,弹指神通,0), # (欧阳锋,1,1,蛤蟆功,0), # (梅超风,0,1,九阴白骨爪,0), # (乔峰,1,2,降龙十八掌,0), # (段誉,1,2,六脉神剑,0), # (虚竹,1,2,天山六阳掌,0), # (王语嫣,0,2,神仙姐姐,0), # (令狐冲,1,3,独孤九剑,0), # (任盈盈,0,3,弹琴,0), # (岳不群,1,3,华山剑法,0), # (东方不败,0,3,葵花宝典,0), # (胡斐,1,4,胡家刀法,0), # (苗若兰,0,4,黄衣,0), # (程灵素,0,4,医术,0), # (袁紫衣,0,4,六合拳,0);-- 模型类方法1.str方法 # 返回模型类对象的描述 2.save方法 # 将对象保存至数据库 3.delete方法 # 级联删除   usermodels.ForeignKey(user,blankTrue,nullTrue,on_deletemodels.SET_NULL) # 没看懂-- 管理器(模型的成员)# 模型类的属性将对象与数据表映射-- 类的属性# objects是Manager类型的对象django中定义好的类用于数据库的交互 # 如果没有指定默认提供一个管理器objects;-- 修改管理器名称(默认objects)# models.py文件中 from django.db import models class Person(models.Model): # 这个模型类里面有一个属性叫做person person  models.Mangager() # 在Manager()类中完成字段信息的映射-- 自定义管理器# 默认管理器方法太少可以通过自定义管理器来新增方法-- 修改管理器返回的原始查询集class BookInfoManager(models.Manager): def get_queryset(self): return super(BookInfoManager, self).get_queryset().filter(isDeleteFalse) # 修改父类Manager中的get_queryset()方法在父类方法后面添加一个filter(isDeleteFales); # super(BookInfoManager, self).get_queryset()表示父类的方法class BookInfo(models.Model): ... 字段赋值 books1  BookInfoManger()  # 表示重写父类后重新定义给新的管理器-- 向管理器类中添加额外的方法# 模型类中无法再使用__init__方法因为父类已经使用创建了很多东西 # 所以我们通过在模型类中使用类方法 classmethod def create(cls, btitle, bpub_date): b  BookInfo b.btitle  btitle ... return b 或者 在自定义管理器中添加上面的方法(推荐使用)-- 查询-- 获取所有对象object1  表名.objects.all() # bookinfo  BookInfo.objects.all() # 可以通过切片选择范围内对象(限制查询集合) object2  表名.objects.all()[1,3]-- 过滤器(查询集的方法)-- 条件查询1.filter() # 满足查询始终返回一个查询集列表 2.exclude() # 不满足查询 3.order_by() 4.values()   5.all()-- 语法规则# 表名.objects.filter(字段名__运算符判断值)-- 运算符1.exact  # 精确匹配 2.contains  # 包含 3.startswith  # 以指定值开头 4.endswith  # 以指定值结束 5.isnull  # 不为空 6.in  # 范围内查询 7.gt/gte/lt/lte # 运算符前加上i不区分大小写-- 例子 # filter()过滤器 # 精确查询 bookinfo_3  BookInfo.objects.filter(id__exact1) print(bookinfo_3) # 包含查询 bookinfo4  BookInfo.objects.filter(book_title__contains八) print(bookinfo4) # 首字查询 bookinfo5  BookInfo.objects.filter(book_title__startswith天) print(bookinfo5) # 尾字查询 bookinfo6  BookInfo.objects.filter(book_title__endswith传) print(bookinfo6) # 查看不为空的字段值 bookinfo7  BookInfo.objects.filter(book_title__isnullFalse) print(bookinfo7) # 查询指定编号范围的字段值 bookinfo8  BookInfo.objects.filter(pk__in[1,3]) print(bookinfo8) # 查询大小范围内的字段值 bookinfo9  BookInfo.objects.filter(id__gt3) print(bookinfo9) # exclude()过滤器 bookinfo10  BookInfo.objects.exclude(id__gt3) print(bookinfo10)-- 返回单个值的方法-- get 获取单一对象bookinfo11  BookInfo.objects.get(book_title  天龙八部) print(bookinfo11) # get如果查询的不仅一个对象会触发MultipleObjectsReturned异常 bookinfo12  BookInfo.objects.get(id__gt2) print(bookinfo12) # get如果查询不到对象会触发DoesNotExist异常 bookinfo13  BookInfo.objects.get(book_title  天龙七部) print(bookinfo13) -- count() -- first() -- last() -- exists()-- F对象和Q对象# 需要导入模块中的对象from django.db.models import F, Q-- F对象# 实现两个属性之间的比较 bookinfo14  BookInfo.objects.filter(book_read__gteF(book_comment)) print(bookinfo14) # 可以在F()对象上使用算数运算 bookinfo15  BookInfo.objects.filter(book_read__gteF(book_comment)*2) print(bookinfo15)-- Q对象(query查询)# 构造查询对象 -- 逻辑与多个过滤器逐个调用 bookinfo16  BookInfo.objects.filter(book_read__lte40, id__lte3) print(bookinfo16) bookinfo17  BookInfo.objects.filter(book_read__lte40).filter(id__lte3) print(bookinfo17) -- 利用Q对象实现或与非 -- 基本语法 Q(属性名__运算符值) # 表示逻辑与|表示逻辑或 bookinfo18  BookInfo.objects.filter(Q(book_read__lte40)  Q(id__lte3)) print(bookinfo18) bookinfo19  BookInfo.objects.filter(Q(book_read__lte40) | Q(id__lte3)) print(bookinfo19)-- 聚合函数# 需要导入模块 from django.db.models import * 表名.objects.aggregate(Sum(字段名)) 1.Avg 2.Count # 查询总数的时候一般不使用 # BookInfo.objects.count() 替代 3.Max 4.Min 5.Sum bookinfo20  BookInfo.objects.aggregate(Sum(book_read)) print(bookinfo20)-- 关联查询-- 一对多,一类1.获取单一字段对象 object1  表名.objects.get(条件) # book  BookInfo.objects.get(id1) 2.获取对应所有所有对象信息 object2  object1.小写表名_set.all() # heroes  book.heroinfo_set.all()-- 多对一多类1.获取单一字段对象 object1  表名.objects.get(条件) # hero  HeroInfo.objects.get(id1) 2.获取对应对象信息 object1.字段属性 # hero.hero_book-- 通过模型类实现关联查询# 暂略-- 自关联# 略 转载于:https://blog.51cto.com/13269293/1971208
http://www.zqtcl.cn/news/416895/

相关文章:

  • 网站建设联系网站改备案信息吗
  • 建设一个看电影的网站唐山网址建站
  • 呼和浩特网站建设价格vs网站开发入门
  • 中国农业工程建设协会网站有专业做线切割配件的网站吗
  • 东莞建网站公司哪个好陕西手机网站建设公司
  • 网站系统里不能打印西安哪有学做淘宝网站
  • 哈尔滨建站模板大全天猫购买
  • 去后台更新一下网站百度最新版下载
  • 盐城网站开发教育建设网站
  • 目前网站开发有什么缺点广东品牌网站建设968
  • 东营做网站优化哪家好简单网站的制作
  • c可以做网站么网站为何不显示百度商桥对话框
  • 音乐网站用dw怎么做怎么做自己的网站教程
  • 网站换域名后需要多长时间才能收录恢复正常做文案公众号策划兼职网站
  • 丹阳做网站的公司重庆建设医院网站
  • 罗湖网站设计费用在线设计平台行业环境
  • 舟山市普陀区建设局网站淘宝怎样优化关键词
  • 网页上做ppt的网站好花西子网络营销案例分析
  • 网站设计说明书主要有什么成都企业网站seo
  • 免费素材下载网站网站建设进度时间表
  • 网站做关键词首页什么是网络营销?如何理解它的产生和把握它的特点?
  • centos做网站扬州市邗江区城乡建设局网站
  • 宁波网站建设模板制作企业做网站的作用
  • 南通网站快速收录禁止wordpress自动更新
  • 济南做网站最好的公司做一电影网站怎么赚钱吗
  • 中国城市建设网站宿州网站建设零聚思放心
  • 佛山网站免费制作struts2 做的网站
  • 做网站需要了解什么软件电商网站建设方案道客巴巴
  • 网站开发语言用什么好网站好坏怎么分析
  • 镇江制作网站的dw新建站点