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

c 网站开发的好处做saas网站可行吗

c 网站开发的好处,做saas网站可行吗,网络营销策划步骤有哪些,高端品牌网站建设服务聚合查询 单独使用时#xff0c;用aggregate 1.只要是跟数据库相关的模块 基本都在django.db.models里面 如果没有应该在django.db里面 2. 聚合查询通常配合分组使用 from django.db.models import Avg, Sum, Max, Min, Count# 1.所有书的平均价格 resmodels.Book.objects.…聚合查询 单独使用时用aggregate 1.只要是跟数据库相关的模块 基本都在django.db.models里面 如果没有应该在django.db里面 2. 聚合查询通常配合分组使用 from django.db.models import Avg, Sum, Max, Min, Count# 1.所有书的平均价格 resmodels.Book.objects.aggregate(price)ret models.Book.objects.all().aggregate(price_avgAvg(price), price_maxMax(price), price_minMin(price)) 分组查询 annotate models后面点什么就是什么分组 # 1.查询每一本书的作者个数 ret models.Book.objects.all().annotate(author_numCount(author)).values(title,author_num) print(ret)#author_num 自定义字段用来统计每本书个数。#等价 ret models.Book.objects.all().annotate(author_numCount(author__pk)).values(title,author_num) print(ret) 只要结果是queryset对象就可以继续.filter()和.values() #2.统计每个出版社的最便宜书的价格 resmodels.Publish.objects.annote(min_priceMin(book__price)).values(name,min_price)#3. 统计不止一个作者的图书#a.先分组书籍求每一步书籍的作者个数#b. 过滤不止一个作者的书籍 resmodels.Book.objects.annote(author_numCount(authors)).filter(author_num__gt1).value(title,author_num) #4. 查询每个作者出的书的总价格 resmodels.Author.objects.annotate(sum_priceSum(book__price)).values(name,sum_price) 扩展其他分组方式 models.Book.values(price).annotate() 分组报错情况去掉严格模式 F与Q查询 F功能直接获取表中某个字段对应的数据 操作字符时F不能直接做到字符拼接 否则变成空白 # 1.查询卖出数大于库存书的书籍# F查询 from django.db.models import Fresmodels.Book.objects.filter(maichu__gtF(kuncun))# 2.将所有书的价格提升50 models.Book.objects.update(priceF(price)50)# 3.将所有书的名字后面加“爆款”两个字 #***操作字符时F不能直接做到字符拼接 #***否则变成空白#需要导入两个模块 from django.db.models.functions import Concat from django.db.models import Valuemodels.Book.objects.update(titleConcat(F(tittle),Value(爆款))) Q功能能改变多个查询条件的关系与或非 # Q 查询# 1.查询卖出数大于100 或者价格小于600的书籍res models.Books.objects.filter(maichu__gt100,price__lt600) #错误filter内是and关系from django.db.models import Qres models.Books.objects.filter(Q(maichu__gt100),Q(price__lt600)) #还是and关系res models.Books.objects.filter(Q(maichu__gt100)|Q(price__lt600)) #Q可以用 |res models.Books.objects.filter(~Q(maichu__gt100)|Q(price__lt600)) #前面取反# Q高阶用法 能够将查询条件左边变成字符串形式qQ() q.connectoror #**修改关系 q.children.append(maichu__gt,180) q.children.append(price__lt,600)res models.Books.objects.filter(q) #filter 也支持直接放q对象默认还是and关系 开启事务 事务ACID 事务回滚 事务确认 from django.db import transactiontry:with transaction.atomic(): #开始事务操作# 先创建一个出版社new_publisher models.Publisher.objects.create(name火星出版社)# 创建一本书models.Book.objects.create(title橘子物语,price11.11,kucun10,maichu10,publisher_id1000 # 指定一个不存在的出版社id)except Exception as e:print(str(e)) orm中常用字段及参数 AutoField int自增列必须填入参数 primary_keyTrue。当model中如果没有自增列则自动会创建一个列名为id的列。CharField sql:varchar 字符类型必须提供max_length参数 max_length表示字符长度。#****所有字段都有verbose_name 字段注释*****IntegerField 一个整数类型,范围在 -2147483648 to 2147483647。BigIntegerFieldDecimalField(Field)- 10进制小数- 参数max_digits小数总长度decimal_places小数位长度EmailField(CharField) varchar(254)- 字符串类型Django Admin以及ModelForm中提供验证机制DateField 日期字段日期格式 YYYY-MM-DD相当于Python中的datetime.date()实例。DateTimeField 日期时间字段格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]相当于Python中的datetime.datetime()实例。auto_now:每次操作数据的时候该字段会自动将当前时间更新auto_now_add:创建数据的时候会自动将当前时间记录下来之后只要不是人为修改那么一直不变BooleanField(Field)- 布尔值类型数据库存0、1TextField(Field)- 文本类型没有字数限制FileField(Field) -字符- 字符串路径保存在数据库文件上传到指定目录- 参数upload_to 上传文件的保存路径storage None 存储组件默django.core.files.storage.FileSystemStorage例如upload_to /data 会自动将文件保存/data目录下然后将文件路径保存到数据库 ###外键字段 #django版本不同级联可能需要手动设置 自定义字段 首先参考常用的字段 # 自定义char类型class MyCharField(models.Field):自定义的char类型的字段类def __init__(self, max_length, *args, **kwargs): # max_length指定字符串宽度self.max_length max_lengthsuper(MyCharField, self).__init__(max_lengthmax_length, *args, **kwargs)def db_type(self, connection):限定生成数据库表的字段类型为char长度为max_length指定的值return char(%s) % self.max_length # 返回 char(32) 在数据库中就是char类型宽度32 # char类型字段的使用 class Class(models.Model):id models.AutoField(primary_keyTrue)title models.CharField(max_length25)# 使用自定义的char类型的字段cname MyCharField(max_length25) 数据库查询优化 ORM语句的特点 惰性查询只写orm语句没有使用orm不会查询数据库。 defer 和 only resmodels.Book.objects.all() print(res) # 要用数据库才查找数据库#获取书籍表中所有的书的名字 resmodels.Book.objects.values(title)##only #获取对象只有title没有其他字段。 resmodels.Book.objects.only(title)for i in res:print(i.title) #only 括号内的字段不会走数据库print(i.price) #only 括号外的字段重新走数据库 all()不需要走数据库#defer resmodels.Book.objects.defer(title) for i in res:print(i.price) #defer与only 刚好相反。括号内走数据库括号外不需要找数据库。select_related 与prefetch_related 与跨表操作有关 resmodels.Book.objects.all() for i in res:print(i.publish.name) #每循环一次就走一次数据库resmodels.Book.objects.select_related(publish) #inner join #select_related内部直接将book与pulish连接起来然后一次性将大表里的所有数据 #全部封装给查询出来的对象 # 这时候无论.book表数据还是publish数据都无需要走数据查询# select_related括号内只能放外键字段 一对多一对一 #多对多不行for i in res:print(i.publish.name)#连多表select_related(a__b__c)###prefetch_relatedresmodels.Book.objects.prefetch_related(publish)# prefetch_related 实际是子查询 # 子查询的结果分装到对象中 # 用户感觉不出多一个命令for i in res:print(i.publish.name)#联表查询遇到大表效率就慢。
http://www.zqtcl.cn/news/441271/

相关文章:

  • 设计网站建设图片wordpress博客置顶
  • 网站上海网站建设网站数据建设涉及哪些内容
  • 3d效果图教程网站宁波网站建设慕枫科技
  • 视频结交网站怎么做想创建一个网站
  • 电商网站销售数据分析上海企业信息登记号查询
  • 网站建设规划设计公司排名无锡网站建设 君通科技
  • 徐州网站开发要多少钱给个人网站做百度百科
  • 法语网站建设免费网站为何收录比较慢
  • 品牌网站推广软件seo内链优化
  • 广东律师事务所东莞网站建设做网站 怎么备案
  • shopnc本地生活o2o网站源码wordpress文章内多页效果
  • 深圳全国网站制作哪个好页面设计有哪几种风格
  • 网页设计作业网站素材和效果图夏天做啥网站致富
  • 利用帝国软件如何做网站网站友链交换平台
  • 简述网站开发技术深圳网站设计合理刻
  • wordpress网站名称寻找销售团队外包
  • 一浪网站建设网页qq邮箱
  • 做网站需要注册公司吗夫唯seo系统培训
  • 沈阳人流哪个医院好安全百度关键词优化怎么做
  • 1688网站怎么做分销高质量的网站内容建设
  • 网站建设公司济宁网站转跳怎么做
  • 镇江网站设计多少钱企业网络部署方案
  • 建网站的公司浩森宇特wordpress登录缓存
  • 便宜建站空间战队头像在线制作免费
  • 做招聘网站赚钱吗厦门网站建设哪里好
  • 新乡网站建设哪家公司好阿里巴巴做国际网站多少钱
  • 怎么在悉尼做网站dede做手机网站
  • 企业网站模板免费下载品牌建设专家库推荐表
  • 辽宁智能网站建设推荐网络营销推广方案创意
  • 安阳做一个网站多少钱东营做网站公司