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

做网站软件流程淘宝建设网站的好处

做网站软件流程,淘宝建设网站的好处,互联网之光博览会第六届,春风家教营销型网站建设多表操作 1 基于对象的跨表查 子查询----》执行了两句sql#xff0c;没有连表操作 2 基于双下滑线的连表查 一次查询#xff0c;连表操作 3 正向和反向 放在ForeignKey,OneToOneField,ManyToManyField的-related_namebooks#xff1a;双下滑线连表查询#xff0c;反向…多表操作 1 基于对象的跨表查 子查询----》执行了两句sql没有连表操作 2 基于双下滑线的连表查 一次查询连表操作 3 正向和反向 放在ForeignKey,OneToOneField,ManyToManyField的-related_namebooks双下滑线连表查询反向查询按表名小写---》用来替换表名小写publish__books__name-related_query_namebooks:基于对象跨表查反向查询---》用来替换表名小写pubilsh.book_set.all()pubilsh.books.all() 4聚合查询 aggregate是 QuerySet 的一个终止子句用来做聚合查询聚合函数Avg,Count,Min,Max,Sum -使用select name,price,avg(price) as price__avg from book; Book.objects.all().aggregate(Avg(price))select name,price,avg(price) as average_price from book; Book.objects.aggregate(average_priceAvg(price))ret Book.objects.all().aggregate(avg_priceAvg(price), min_priceMin(price)) 5 分组查询--》分组后通常会用聚合---》annotate用来分组和聚合的 annotate filter在annotate前表示过滤where条件values在annotate前表示分组的字段如果不写表示按整个表分组filter在annotate后表示 having条件values在annotate后表示取字段---》只能取分组字段和聚合函数字段分组的目的把有相同特征的分成一组分成一组后一般用来统计总条数统计平均数求最大值 -统计每一本书作者个数---》 Book.objects.all().values(id).annotate(author_numCount(authors)).values(name,author_num)-统计每一个出版社的最便宜的书---》按出版社Publish.objects.all().valuse(id).annotate(min_priceMin(book__price)).vlaues(name,min_price)Publish.objects.annotate(MinPriceMin(book__price))-查询每一个书籍的名称以及对应的作者个数--按书分Book.objects.all().values(id).annotate(count_publishCount(authors)).value(name,count_publish)-查询每一个以 红开头 书籍的名称以及对应的作者个数--按书分Book.objects.all().filter(name__startswith红)values(id).annotate(count_publishCount(authors)).value(name,count_publish)-查询每一个以 红开头 书籍的名称以及对应的作者个数大于3的记录--按书分 Book.objects.all().filter(name__startswith红)values(id).annotate(count_publishCount(authors)).filter(count_publish__gt3).value(name,count_publish) 6 F查询与Q查询 F查询拿到某个字段在表中具体的值 -查询评论数大于收藏数的书籍from django.db.models import FBook.objects.filter(评论数__gtF(收藏数))-让所有图书价格 1Book.objects.all().update(priceF(price)1) Q查询为了组装成  与  或  非 条件 -与条件and条件在filter中直接写---》就是and条件Book.objects.filter(authors__namelqz,price100)-或条件Book.objects.filter(Q(authors__namelqz)|Q(authors__namejustin))-非条件Book.objects.filter(~Q(name红楼梦))-复杂逻辑(名字为红楼梦并且价格大于100) 或者 id 大于 2Book.objects.filter((Q(name红楼梦) Q(price__gt100))|Q(nid__gt2)) 其他字段和字段参数 字段参数ORM字段参数 null用于表示某个字段可以为空。unique 如果设置为uniqueTrue 则该字段在此表中必须是唯一的 。db_index如果db_indexTrue 则代表着为此字段设置索引。default为该字段设置默认值。DateField和DateTimeField auto_now_addTrue新增会把当前时间存入defaultdatatime.datatime.nowauto_nowTrue每次更新数据记录的时候会更新该字段verbose_name       提示,该字段的作用blank               Admin中是否允许用户输入为空editable            Admin中是否可以编辑help_text           Admin中该字段的提示信息choices             Admin中显示选择框的内容用不变动的数据放在内存中从而避免跨表操作 get_字段名_display() ForeignKey 属性 to设置要关联的表    to_field 设置要关联的表的字段  related_name 反向操作时使用的字段名用于代替原反向查询时的’表名_set’。  related_query_name 反向查询操作时使用的连接前缀用于替换表名。  on_delete   当删除关联表中的数据时当前表与其关联的行的行为。    models.CASCADE删除关联数据与之关联也删除    models.DO_NOTHING 删除关联数据引发错误IntegrityError    models.PROTECT 删除关联数据引发错误ProtectedError    models.SET_NULL删除关联数据与之关联的值设置为null前提FK字段需要设置为可空    models.SET_DEFAULT删除关联数据与之关联的值设置为默认值前提FK字段需要设置默认值    models.SET   删除关联数据   a. 与之关联的值设置为指定值设置models.SET(值)   b. 与之关联的值设置为可执行对象的返回值设置models.SET(可执行对象)  db_constraint---》公司一般都设置为False     是否在数据库中创建外键约束默认为True     db_constraintFalse  在数据库中不建立外键约束     虽然不建立数据库外键约束---》但是orm查询继续用 ManyToManyField 用于表示多对多的关联关系。在数据库中通过第三张表来建立关联关系 to 设置要关联的表中间是有个中间表的区别于一对多      related_name 同ForeignKey字段。      related_query_name 同ForeignKey字段。           through     在使用ManyToManyField字段时Django将自动生成一张表来管理多对多的关联关系。     但我们也可以手动创建第三张表来管理多对多关系此时就需要通过through来指定第三张表的表名。      through_fields设置关联的字段。      db_table 默认创建第三张表时数据库中表的名称。 中间表创建方式 自动生成用不到through 和  through_fields authorsmodels.ManyToManyField(toAuthor,db_table中间表表名) 自动创建中间表有快捷操作 addremovesetclear book表id name price1 西游记 222 红楼梦 33bookToauthorsid book_id author_id 1 1 12 1 2author表id name gender age1 lqz 男 182 罗贯中 女 22 手动创建中间表使用through指定 三张表都要手动创建--》3个类--》3个表模型---》     什么情况会使用手动创建----中间表如果有多的字段都是手动创建 authorsmodels.ManyToManyField(toAuthor,throughbooktoauthor, through_fields(当前表--》到中间表的外键关系剩下的写在第二个位置)) book表id name price1 西游记 222 红楼梦 33booktoauthorid book_id author_id 日期1 1 1 2 1 2author表id name gender age1 lqz 男 182 罗贯中 女 22 纯手动创建中间表不使用ManyToManyField关联 不会在book或author表中加 ManyToManyField 字段了 book表id name price1 西游记 222 红楼梦 33booktoauthorid book_id author_id 日期1 1 1 2 1 2author表id name gender age1 lqz 男 182 罗贯中 女 22 在表中都可以定义要给内部类   class Author(models.Model):name models.CharField(max_length32)class Meta: #元信息db_tableindex_togetherunique_togetherordering # 默认按id排序 django与ajax ajax:异步Javascript和XML 作用Javascript语言与服务器(django)进行异步交互传输的数据为XML当然传输的数据不只是XML,现在更多使用json数据 同步交互异步交互 同步交互js发送出请求---》直到请求回来---》页面不能操作不能点击     异步交互js发出请求---》等待请求回来的过程中---页面可以随意继续操作 使用使用了jq帮咱们封装的方法  ajax 名字跟ajax相同 $.ajax 真正的ajax原生需要使用js操作jq的ajax方法是对原生js的封装方便咱们使用 -前后端混合项目中我们通常使用jq的ajax实现 js和后端异步交互         -jq操作dom         -jq发ajax请求     -前后端分离项目中我们会使用另一个第三方库实现 js和后端异步交互axios         -只想发送ajax请求---》只用来发ajax请求的库 计算  小案例 demo01.html !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlescript srchttps://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js/scriptlink hrefhttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheetscript srchttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js/script /head bodyh1写一个计算小案例--ajax/h1 input typetextnameone idone input typetextnametwo idtwo input typetextnamethreeidthree button id id_btn计算/button /body script$(#id_btn).click(function (){{#alert(xxx)#}var one$(#one).val()var two$(#two).val()$.ajax({url:/demo01/,method:post,data:{one,two},success:function (res){console.log(typeof res)if (res.code100){$(#three).val(res.result)}else {alert(res.msg)}}})}) /script /html views.py def demo01(requset):if requset.methodGET:return render(requset,demo01.html)else:oneint(requset.POST.get(one))twoint(requset.POST.get(two))return JsonResponse({code:100,msg:计算成功,result:onetwo})上传文件 demo01.html !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlescript srchttps://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js/scriptlink hrefhttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css relstylesheetscript srchttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js/script /head bodyhr h1文件上传/h1 input typefile idid_filebutton idid_submit文件上传/button /body script$(#id_submit).click(function (){{#alert(xxx)#}var formdata new FormData()//$(#id_file)[0].files[0]//$(#id_file)根据id拿到标签———》jq把标签放到一个列表中//取第0个位置是取出第一个符合条件【id为id_file】的标签想拿文件---》标签对象.files---对象---》从对象中取出key为0队友的文件对象formdata.append(myfile,$(#id_file)[0].files[0])$.ajax({url:/demo01/,method:post,//指定编码上传文件processData: false,contentDocument:false,data:formdata,success:function (res){if (res.code100){alert(res.msg)}else {alert(res.msg)}}})}) /script /html views.py def demo01(requset):if requset.methodGET:return render(requset,demo01.html)else:myfilerequset.FILES.get(myfile)with open(myfile.name,wb) as f:for line in myfile:f.write(line)return JsonResponse({code:100,msg:文件上传成功,}) json格式用的多后期 $.ajax({url: /demo01/,method: post,contentType: application/json,data: JSON.stringify({name: lqz, age: 19}), // 把对象转成字符串形式,json格式字符串success: function (data) {console.log(data)}})
http://www.zqtcl.cn/news/204191/

相关文章:

  • 长春做网站哪里好西安有什么网页设计公司
  • 昆明网站建设精英免费自己建网页
  • 网站开发框架 开源买的有域名怎么做网站
  • 为什么做电商网站成都在哪建设网站
  • 有没有做请帖的网站南漳网站制作
  • 项目信息网站哪个好企业开展网络营销方案
  • 网站开发制作费入会计科目做毕业设计个人网站任务书
  • 自己建一个网站微信指数官网
  • 产品推广网站模板哪里有做网站的素材
  • 网站界面要素村网站开设两学一做栏目
  • 临沂免费模板建站河北邢台手机网站建设
  • 企业网站栏目规划的重要性wordpress改变为中文
  • 云服务器怎么上传网站个人建一个网站多少钱
  • 东莞网站建设包装制品flash网站制作
  • 办网站怎么赚钱做二手电脑的网站
  • 大型电子商务网站建设成本旅游网站前台怎么做
  • 深圳网站建设..网站点击图片放大
  • 上海企业扶持政策洛阳400电话洛阳网站seo
  • 保亭县住房城市建设局网站app免费制作平台下载
  • 抚州市建设局网站在网站做商城平台需要哪些资质
  • 潍坊专业网站建设多少钱素马设计官网
  • 深圳网站建设 套餐近期新闻事件
  • 网站开发外包维护合同淘宝客源码程序 爱淘宝风格+程序自动采集商品 淘宝客网站模板
  • 烟台企业网站开发军事新闻最新24小时
  • wordpress网站更换域名网站空间建站
  • 十堰网站建设公司电话网页设计与制作教程江西高校出版社
  • 英文网站seo常州建设局考试网站
  • wordpress 多网站哈尔滨 建网站
  • 免费网站源代码怎么制作网站教程
  • Thinkphp开发wordpress网站怎么优化seo