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

php网站页面转wordpress网站策划哪里找

php网站页面转wordpress,网站策划哪里找,工信部网站首页,特产网站开发背景一、Lookup API概述 Lookup API是Django用于构建数据库查询WHERE子句的API。 Lookup API的核心包含两部分#xff1a; RegisterLookupMixin#xff1a;为子类提供注册lookup的方法Query Expression API#xff1a;一个接口#xff0c;规定了可以被注册为lookup的类需要实…一、Lookup API概述 Lookup API是Django用于构建数据库查询WHERE子句的API。 Lookup API的核心包含两部分 RegisterLookupMixin为子类提供注册lookup的方法Query Expression API一个接口规定了可以被注册为lookup的类需要实现的方法。 在Django中有两个实现了Query Expression API的基类分别是Lookup和Transform前者用于声明查询条件后者专注于对字段做转换。两者都实现了Query Expression API都可以被注册为lookup可以单独使用也可以互相配合。 lookup是一个比较抽象的名词它描述的是搜索和过滤条件而不是查找这个动作本身。对字段注册lookup我们就能构造查询表达语句Django会将其编译为合适的SQLWHERE子句。 二、Lookup基类 前面提到实现Query Expression API的基类分别是Lookup和Transform。首先介绍Lookup类它是我们构造查询语句的主力我们从自定义一个Lookup的子类出发来了解它的工作原理。 1. 自定义Lookup 尝试实现这样一件事情将User.objects.filter(username__isMario)转化为SQL: user.username IS mario当然SQL语句中不存在IS这样只是方便理解。实现这个功能需要两个步骤 声明一个Lookup的子类并重写as_sql()方法 from django.db.models import Lookupclass Is(Lookup):lookup_name isdef as_sql(self, compiler, connection):lhs, lhs_params self.process_lhs(compiler, connection)rhs, rhs_params self.process_rhs(compiler, connection)params lhs_params rhs_paramsreturn %s IS %s % (lhs, rhs), params注册新声明的lookup类Is 需要lookup在某个字段上生效就需要调用这个字段上的register_lookup方法进行注册。Filed继承了RegisterLookupMixin类因此可以使用其提供的register_lookup方法注册lookup。为Field注册lookup其所有子类就都可以使用此lookup from django.db.models import FieldField.register_lookup(Is)Filed提供了装饰器方法注册lookup from django.db.models import FieldField.register_lookup class Is(Lookup): ...使用新定义的Is查找类的方法有两种 构造lhs__lookup_namerhs形式的查询表达语句 from django.contrib.auth.models import User q User.objects.filter(username__ismairo) q.query print(q.query)编译的SQL语句 SELECT ...略 FROM auth_user WHERE auth_user.username IS mairo使用创建实例的形式 q User.objects.filter(username__ismairo)from django.db.models import F q2 User.objects.filter(Is(F(username), mario))编译的SQL语句与上面的方法完全一致两种方法是等效的。 2. Django内置的lookup Django内置了很多lookup在django.db.models.lookups目录下你可以找到它们 ... Field.register_lookup class GreaterThan(FieldGetDbPrepValueMixin, BuiltinLookup):lookup_name gtField.register_lookup class GreaterThanOrEqual(FieldGetDbPrepValueMixin, BuiltinLookup):lookup_name gte ...介绍两种常用的内置lookup: exact 默认情况下当你没有提供查找类型的时候默认使用exact: Entry.objects.get(id14) Entry.objects.get(id__exact14) # 上面两个完全一致准确来说django将id14默认视为id__exact14等效SQL语句: SELECT ... WHERE id 14;in Entry.objects.filter(id__in[1, 3, 4])等效SQL语句 SELECT ... WHERE id IN (1, 3, 4);三、Transform基类 与Lookup类相同Transform类及其子类也可以被注册为lookup但Transform与Lookup不同Transform 更加关注的是如何改变字段值而不是直接进行值的比较。通过使用 Transform你可以对数据库中的数据执行诸如转换为小写、截取字符串的一部分、日期时间的格式化等操作。通常会和Lookup配合使用它主要做预处理工作。它是数据库级别的转换具有很好的性能。 1. 自定义Transform from django.db.models import Transform from django.db.models import IntegerFieldclass AbsoluteValue(Transform):lookup_name absfunction ABSIntegerField.register_lookup(AbsoluteValue)Transform在源码中继承了两个类class Transform(RegisterLookupMixin, Func)可以说它是一个特殊的Func在声明时就规定好了用于转换的function因此只接收一个参数。 使用示例1 Experiment.objects.filter(change__abs27)生成的SQL SELECT ... WHERE ABS(experiments.change) 27注意这里django实际上将change__abs27 视作 change__abs__exact27。 使用示例2 Experiment.objects.filter(change__abs__lt27)生成的SQL: SELECT ... WHERE ABS(experiments.change) 272. 内置的Transform year Blog.objects.filter(time__year__gt2023)生成的SQL SELECT ... FROM snippets_blog WHERE snippets_blog.time 2023-12-31 23:59:59.99999900:00Django内置了很多中方便的transform这里不做赘述。 四、lookup表达语句的构成 一个lookup表达语句可以由三部分构成组合使用可以构造强大高效的查询语句。 field如Book.objects.filter(author__best_friends__first_name...)Transform如__lower__first3chars__reversedlookup如__icontains默认__exact 五、总结 lookup API是Django中一个很重要的功能它的主要工作就是构造查询的WHERE子句。Django已经内置了很多使用的lookups帮助我们快速构造查询语句。Django允许我们自定义lookups实现复杂的查询需求。
http://www.hkea.cn/news/14443685/

相关文章:

  • 四川网站建设电话公司建一个网站吗
  • 手机版网站开发的功能点免费 建网站
  • 网站备案号怎么修改代理服务器国外
  • 做soho外贸网站怎么用微信做网站
  • 西安建网站公司怎样注册企业邮箱
  • 吉林省城乡建设厅网站6网络服务商不提供哪项服务
  • 怎么做付款下载网站wordpress改密码忘记
  • 做网站先学美工登陆建设银行官方网站
  • 有什么网站用名字做图片大全asp技术做网站
  • 网站要多少钱互联网营销公司排行榜
  • 网站 图片切换徐州企业网站排名优化
  • 做网站前端用什么技术好wordpress 网站登录
  • 营销型网站建设实训总结WordPress让中文名图片显示
  • 哪里有网站开发设计中国四大门户网站分别是
  • 做照片书的模板下载网站好南岸集团网站建设
  • 布吉做网站的公司本地网站建设电话
  • 做红酒闪购的网站有哪些小程序免费制作平台登录
  • 上合建设网站企业品牌网站建设k小蝌蚪
  • 设计网页公司哪里好seo大牛
  • 什么事网站建设wordpress密码忘记了
  • 在哪注册网站丽江市企业网站
  • 常州的网站建设北京学会网站建设
  • 众筹网站搭建软件工程学科评估排名
  • 长沙传媒公司招聘深圳网站优化软件
  • 做网站教程流程哈尔滨网站推广
  • 酒店做网站企业解决方案平台
  • 网站架构方案苏州做网站优化的
  • 兰州网站排名推广迅捷在线图片编辑
  • wordpress snape莱芜网站优化有哪些
  • ftp如何备份网站手机网站开发环境