专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Django的filter和tag使用说明和如何自定义

  那么首先来说明下什么时Filter什么时tag了,如何去区分了
  1、在使用上区别:
  filter使用方法{{objfilter:param}}
  tag使用方法{tags}
  2、filter可以使用作为if判断语句的标签,标签时不可以的
  3、filter最多只能传递两个参数,而且tag可以传递多个
  filter使用说明
  语法的格式如下
  {{objfilter:param}}
  obj我们需要处理的对象
  filter我们的filter,常见有如下罗列出的
  paramfilter的参数
  1、add
  添加相应的值,这个比较好理解,例如:
  {{3add:2}}那么这个就是32最后结果等于5,当然了我们的3一般时python传过来的变量了。
  注意前面的obj只能时整形数值,字符串无法相加
  ageadd:3
  2、addslashes
  给变量中的引号前加上斜线,就是转译引号,
  例如:
  {{qmmdfaddslashes}}
  那么该输出接入如下
  qmmdf
  3、capfirst
  首字目大写,很好理解不多说
  例如:
  {{qmmdfcapfirst}}
  那么输出结果如下:
  Qmmdf
  4、cut
  把指定的字符串剪切掉
  例如我们把单引号去掉:
  {{qmmdfcut:}}
  输出如下:
  Qmmdf
  5、date
  格式化时间日期显示,注意了,需要处理的对象必须时时间对象类型
  例如:
  dt变量类容为:{{dt}}
  处理后的内容:{{dtdate:Ymd}}
  输出结果如下:
  dt变量类容为:April6,2018,1:07p。m。
  处理后的内容:20180406
  6、default
  如果值是False,就替换成设置的默认值,否则就是用本来的值
  例如:
  {{Falsedefault:这是False}}
  {{Truedefault:这是True}}
  输出结果如下:
  这是False
  True
  7、defaultifnone
  如果值是None,就替换成设置的默认值,否则就使用本来的值,和default差不多原理
  例如:
  {{Nonedefaultifnone:没有值默认替换}}
  {{defaultifnone:就算有一个空格也是不会替换的}}
  输入结果如下:
  没有值默认替换
  8、filesizeformat
  对数字进行格式化,IT中经常使用到的容量显示技术
  例如:
  {{5120filesizeformat}}
  结果就是
  5。0KB
  9、first、last、slice
  字符串处理,first取第一个字符,last去最后一个字符,slice切片和python中一样使用
  例如:
  {{5120last}}
  {{5120first}}
  {{5120slice::2}}
  结果:
  0hr5hr51hr10、safe、autoescape、striptags
  让浏览器渲染我们的变量内容,
  例如:
  原始变量:{{dt}}
  有时候我们想浏览器去渲染我们在数据库等地方取出来的html语言:
  第一种方法,也是最常用的,使用safe:
  {{dtsafe}}
  第二种方法,使用autoescapeoff,注意了autoescape就是标签了:
  {autoescapeoff}
  {{dt}}
  {endautoescape}
  第三种方法,使用striptags,注意该方法,会去除html语言标记哦:
  {{dtstriptags}}
  效果如下:
  当然还有很多的filter,以上罗列出来的只是我们常用的,更多的filter请查看官方文档
  https:docs。djangoproject。comen2。0reftemplatesbuiltins
  一般常用的标签tag说明:
  1、最常用的if标签{if}
  {if条件表达式}
  表达式成立执行代码块
  {elif条件表达式}
  表达式成立执行代码块
  {else}
  所有表达式不成立执行代码块
  {endif}
  2、循环标签{for}的使用
  {forobjectinobjects}
  执行的循环体
  {endfor}
  3、{csrftoken}跨站攻击校验
  请求网页时会生成一个csrf校验字符串,防止跨站请求工具,注意如果我们使用rendertoresponse方法,这个就不生效。
  使用方法,在from表单中直接使用{csrftoken}
  在前台我们每次请求,会随机生产一个校验码,在表单提交时后台会进行校验
  4、{url}链接url
  显示指定路由的URL路径,具体查看上面的两个截图,我们需要在url路由指定name,前面进行调用
  5、{with}变量替换
  例如把一个长的变量做一个短的别名
  {withtotalwww。qnjslm。com}
  {{total}}
  {endwith}
  6、{verbatim}:禁止进行渲染
  有时候我们需要在页面上显示模板语言的原型,就会用到verbatim,还记得上面的safe的filter
  {verbatim}
  {{123add:2}}
  {endverbatim}
  7、{load}加载标签库
  我们使用最多的就是加载自定义标签库了,产靠下一节的演示
  现在来介绍我们自定义Tag以及Filter
  第一步:在APP目录下创建一个模块名字为templatetags(注意名字必须时这个)
  第二步:在templatetags目录下创建py文件,这个文件名字可以随意了
  第三步:创建我们自定义的filter以及tag
  1、首先需要引用template,如果需要返回html内容需要引入marksafe
  fromdjangoimporttemplate
  fromdjango。utils。safestringimportmarksafe
  2、实例化一个对象,注意这里必须使用register来接收,不可以使用其他名称
  registertemplate。Library()
  3、定义自已的函数,使用装饰器register。filter、register。simpletag
  4、在Django的设置中,在APP中一定加载我们的APP名称
  5、在模板中我们使用load加载我们的文件名,就可以安装上面的方法进行使用
  {loadmytest}
  详细代码(mytest):
  fromdjangoimporttemplate
  fromdjango。utils。safestringimportmarksafe
  registertemplate。Library()
  register。filter
  deffiltermulti(v1,v2):
  returnv1v2
  register。simpletag
  deftagmulti(v1,v2,v3):
  returnv1v2v3
  register。simpletag
  definputmulti(id,name,classname):
  result(id,classname,name)
  returnmarksafe(result)
  模板中我们使用
  前台的效果如下图
  模板的标签(Tags):
  标签的使用:{Tags}
  autoescape
  自动转义标签,要在html中原样输出html标签的时候使用
  {autoescapeon}
  {{body}}
  {endautoescape}
  对body的内容进行转义,原样输出html标签
  block
  模板继承,详细看模板继承
  comment
  多行注解,忽略、不输出{comment}{endcommit}标签里面的内容
  csrftoken
  防止跨站点攻击,在表单标签中添加{csrftoken}
  cycle
  用于循环产生字段
  {foroinsomelist}
  {cycleonetwo}
  {endfor}
  这将会在for循环中交替出现row1和row2字符串
  结果为(somelist的长度为5):
  one
  two
  one
  two
  one
  cycle的参数可以为字符串或者为变量
  {cycleonetwoasstr}{{str}}
  可以在循环中多次引用字符串
  结果为:
  oneone
  twotwo
  oneone
  twotwo
  oneone
  debug
  输出整个调试信息负载,包括当前上下文和导入的模块
  extends
  与block标签配合使用
  filter
  {filterupperlower}
  thisistext
  {endfilter}
  将filter标签里面的经过upper处理在将结果经过lower处理,filter参数可选择多个
  firstof
  输出第一个不是False的参数
  {firstofvar1var2var3}
  等同于
  {ifvar1}
  {{var1}}
  {elifvar2}
  {{var2}}
  {elifvar3}
  {{var3}}
  {endif}
  {firstofvar1var2var3fallbackvalue}
  当所有参数都为False时,输出fallbackvalue
  此标签自动转义默认值参数:
  {autoescapeoff}
  {firstofvar1var2var3fallbackvalue}
  {endautoescape}
  可以使用safe管道符忽略转义:
  {firstofvar1var2safevar3fallbackvaluesafe}
  可以用一下语法将输出值储存在变量value中:
  {firstofvar1var2var3asvalue}
  for
  点运算符:
  variable。object
  优先返回
  varialbe〔object〕字典类型查找
  variable。object属性查找
  variable。object()方法调用
  variable〔object〕列表索引查找
  for循环设置中可用的变量
  forloop。counter循环的当前迭代(1索引)
  forloop。counter0循环的当前迭代(0索引)
  forloop。revcounter循环结束时的迭代次数(1索引)
  forloop。revcounter0循环结束时的迭代次数(0索引)
  forloop。first如果这是第一次迭代,则为真
  forloop。last如果这是最后一次迭代,则为真
  forloop。parentloop对于嵌套循环,这是上一循环的forloop对象
  for。。。。empty
  配合for标签使用
  {fornumberinnumbers}
  number
  {empty}numbers对象为空时执行
  thenumbersisempty
  {endfor}
  if
  条件判断语句
  {ifathletelist}
  one
  {elifathleteinlockerroomlist}
  two
  {else}
  three
  {endif}
  在if标签中可以使用布尔运算符orandnot等
  在同一标签中同时使用and和or时and的优先级将大于or
  {ifathletelistandcoachlistorcheerleaderlist}
  等于
  if(athletelistandcoachlist)orcheerleaderlist
  if标签也可以用运算符!inis
  {ifabandbc}
  也可以在if标签中使用过滤器
  {ifmessageslength100}
  Youhavelotsofmessagestoday!
  {endif}
  ifchanged
  {fortintext}
  {ifchanged}{{t}}{endifchanged}当t的内容与上次重复时,不显示出来
  {endfor}
  也可以指定判断某个变量
  {ifchangeddate。date}{{date。date}}{endifchanged}
  也可以添加{else}标签
  {ifchangedmatch。ballotid}
  some
  {else}
  some
  {endifchanged}
  include
  加载一个模板并且用当前的上下文内容渲染它。这标签能用来在一个模板中包含另一个模板,模板的名字可以是一个变量或者是字符串。
  {includefoobar。html}
  模板名是相对于模板加载器的根目录的。字符串参数可以用。或者。。开头。
  此标签的参数也可以指定一个拥有render()方法渲染内容的Template对象。
  也可以在标签中用with指定参数
  {includenamesnippet。htmlwithpersonJanegreetingHello}
  可以指定字段only来指定只接受include内的参数来渲染
  {includenamesnippet。htmlwithgreetingHionly}
  load
  用于装载自定义的标签或者过滤器的库
  lorem
  用法:
  {lorem〔count〕〔method〕〔random〕}
  count:用来指定要生成的段落或者单词的数目(默认为1)
  method:w代表单词,p代表html段落,b代表纯文本段落
  用来生成测试文本
  now
  用于格式化显示时间
  Itis{nowjSFYH:i}可以使用反斜杠进行转义
  也可以将输出的字符串作为变量储存下来
  {nowYascurrentyear}
  regroup
  ?
  resetcycle
  重置cycle的计数
  也可以指定重置的cycle标签
  {cycleonetwoasone}
  {cycleonetwoastwo}
  {resetcycleone}
  spaceless
  清除html标签直接的空白符号(只删除标签之间的,标签和文本之间的不删除)
  {spaceless}
  Foo
  span
  {endspaceless}
  templatetag
  用法:
  {templatetagparam}
  将参数进行转义
  param:
  openblock{
  closeblock}
  openvariable{{
  closevariable}}
  openbrace{
  closebrace}
  opencomment{
  closecomment}
  url
  用给定的名称和可选参数返回结对路径引用,任何特殊的字符都将会用iritouri()编码。
  语法:
  {urlsomeurlnamev1v2}
  第一个参数是url的name,它可以是字符串或者变量
  额外的参数是可选的,将用作为url上的参数
  也可以使用关键词参数,但位置参数和关键词参数不要混合使用
  {urlsomeurlnamearg1v1arg2v2}
  如果指定的url不存在,则将会抛出一个NoReverseMatch错误,这将导致服务器返回一个错误页面。
  一下调用将不会直接生成url,而是会保存在变量theurl中
  {urlsomeurlnameargarg2astheurl}
  可以使用标签{block}限定变量theurl作用的范围
  verbatim
  停止模板渲染引擎呈现此块标记的内容。
  widthratio
  按照比例计算数值
  {widthratiothisvaluemaxvaluemaxwidth}
  可以使用as储存数值
  with
  简化复杂的变量调用
  {withtotalbusiness。employees。count}
  这里可以直接使用total,total的作用域只存在标签体中
  {endwith}
  可以指定更多的参数
  {withalpha1beta2}
  。。。
  {endwith}
  过滤器:
  内置过滤器:django。template。defaultfilters
  过滤器改变变量的值和改变标签的参数
  语法:
  {{djangotitle}}将变量django内容里面的每个单词首字符转换为大写
  可以向过滤器传递参数:
  {{mydatedate:Ymd}}
  内建的过滤器:
  add
  将参数加载变量value上
  {{valueadd:2}}
  变量和参数也可以是其它的类型(例如stringlist)
  addslashes
  转义
  {{valueaddslashes}}
  如果value是:ImusingDjango
  将输出:ImusingDjango
  capfirst
  将值的第一个字母大写
  center
  {{valuecenter:15}}
  将value居中在宽度为15
  cut
  {{valuecut:param}}
  将value中的全部param去掉
  date
  按照给定的格式去格式化日期
  详细
  default
  当值为False时,则输出默认参数
  如果值value为False,则输出nothing
  {{valuedefault:nothing}}
  defaultifnone
  和default类似,不过仅在值为None时才输出默认值
  dictsort
  将列表中的字典按照给定的参数作为字段进行排序
  〔
  {name:zed,age:19},
  {name:amy,age:22},
  {name:joe,age:31},
  〕
  参数为name
  则输出:
  〔
  {name:amy,age:22},
  {name:joe,age:31},
  {name:zed,age:19},
  〕
  或者是:
  {{valuedictsort:0}}参数应该输入int类型,而不是字符串类型
  value:
  〔
  (a,42),
  (c,string),
  (b,foo),
  〕
  排序后:
  〔
  (a,42),
  (b,foo),
  (c,string),
  〕
  dictsortreversed
  工作原理和上面一样,不过是倒序排序
  pisibleby
  如果value能被参数3整除,则输出True,否则输出False
  {{valuepisibleby:3}}
  escape
  转义,在html中输出html标签的字符串表达
  escapejs
  ??
  filesizeformat
  {{valuefilesizeformat}}将value转换为有利于理解的文件大小字符串表示
  first
  返回列表中的第一个元素
  {{valuefirst}}
  floatformat
  如果不带参数,则四舍五入到小数点后一位
  如果带参数,则四舍五入保留参数大小的小数个数(n为参数大小)
  如果参数为零,则不保留小数
  如果参数为负数,则四舍五入保留参数绝对值大小的小数个数,如果小数点后全为零,则忽略小数
  forceescape
  类似于escape,此过滤器立即应用并返回一个新的转义字符串
  getdigit
  给定一个整数,返回请求的数字
  {{valuegetdigit:2}}
  返回value的十位数字
  若参数为3,则返回百位数字
  iriencode
  将value转换为适合包含在URL中的字符串表达形式
  join
  用给定的字符串连接列表,返回最终字符串表达形式
  类似python的str。join(list)
  jsonscript
  NewinDjango2。1
  安全地将Python对象输出为JSON,包装在
  last
  返回列表中最后的元素
  {{valuelast}}
  length
  返回序列对象的长度,对于未知类型,则返回0
  lengthis
  如果给定序列的长度等于传入的参数,则返回True,否则返回False
  linebreaks
  将换行符转换为
  一个新行加上一个空行变成了段落换行符span
  linebreaksbr
  将换行符转换为
  linenumbers
  显示文本的行数
  one
  two
  three
  转换为:
  1。one
  2。two
  3。three
  ljust
  {{valueljust:10}}
  如果value是django,则输出Django
  lower
  将给定的字符串全部转换为小写字符
  makelist
  将给定的字符串转换为列表
  phone2numeric
  将电话号码转换成数字输出
  pluralize
  应用于英文复数场景,参数可以定义输出的后缀
  pprint
  调试用??
  random
  随机输出给定的列表中的元素
  {{valuerandom}}
  如果value是〔a,b,c〕,则随机输出其中的一个
  rjust
  类似于ljust,不过对齐方式是向右
  safe
  标记内容,表示不用被转义
  safeseq
  类似于safe,但应用于列表中的每个参数
  slice
  给定一个列表,返回列表的切片对象
  slugify
  转换为ASCII。将空格转换为连字符。删除非字母数字、下划线或连字符的字符。转换为小写的。还可以去掉开头和结尾的空白。
  Joelisaslug转换为joelisaslug
  stringformat
  根据给定的参数格式化变量
  {{valuestringformat:E}}
  如果value为10,则输出1。000000E01
  striptags
  将给定的字符串中的html的全部标签删除
  time
  格式化时间
  {{valuetime:H:i}}value为时间
  timesince
  {{starttimesince:later}}
  代表自从start之后,到later过了多少时间
  相当于返回laterstart
  timeuntil
  {{starttimeuntil:before}}
  before为可选参数,代表在start之间的时间
  返回从bofore到start过了多少时间(startbefore)
  title
  将给定的字符串中所有的单词的首字母转换为大写,其它字符转换为小写
  truncatechars
  缩短字符串长度为给定的参数,缩短后字符串带。。。后缀
  {{valuetruncatechars:9}}
  valueJoelisaslug
  输出Joeli。。。
  truncatecharshtml
  类似truncatechars,但忽略html标签,将标签里面的内容自动缩短。
  {{valuetruncatecharshtml:9}}
  value
  Joelisaslug
  输出
  Joeli。。。
  truncatewords
  类似truncatechars,但以一个单词为单位计算。
  truncatewordshtml
  类似truncatecharshtml,但以一个单词为单位计算。
  unorderedlist
  根据给定的嵌套的list自动生成嵌套的列表
  upper
  将给定的字符串中的字母全部转换为大写字母
  urlencode
  转义URL中使用的值
  urlize
  将给定的url地址转换为html中可点击的链接
  urlizetrunc
  类似于urlize和truncatechars的结合体
  wordcount
  返回给定字符串中单词的数量
  wordwrap
  指定每行的长度
  {{valuewordwrap:5}}
  如果value为Joelisaslug
  则输出
  Joel
  isa
  slug
  yesno
  将给定值的布尔值转换为自定义的参数
  {{valueyesno:yeah,no,maybe}}
  如果value为True,则输出yeah
  如果为False,则输出no
  如果为None,则输出maybe(此参数可省略,如果省略,则默认输出False对应的结果)

秋意浓秋天的第一缕阳光照进房间,从窗边透进枕边,眼睛眯成一条线被小阳光包围着。太阳公公升起来了,好奇地窥视大地像是对大地问好一样。地面上逐渐亮堂起来了。大雾散去,树上鸟儿叽叽喳喳。小区里不是中秋也可以搞个生椰拿铁荷花酥当下午茶点犒劳自己头条创作挑战赛不是中秋也可以搞个生椰拿铁荷花酥当下午茶点犒劳自己中式点心最经得起时间的考验,这些原本是皇家贵族的点心,如今飞入百姓家。炎夏提不起劲做烘焙,尤其是点心类,温度降下来后七十年新闻岁月,老报人画说话说报社记趣北京日报客户端作者宗春启(北京市记协原常务副主席)1994年秋天,我陪同河内日报的越南同行游慕田峪长城回来,汽车一驶过建国门,我赶忙指着灯光璀璨的报社大楼对他们说看,这就是北京日报三峡能源(600905。SH)拟与长江电力等共同出资100亿元设立新能源投资公司智通财经APP讯,三峡能源(600905。SH)发布公告,为全面提升公司新能源项目资源获取实力,拓展在内蒙古自治区新能源业务,进一步增强资源优势和规模突破,拟由三峡能源长江电力三峡买新能源汽车还是燃油车?最近,家里想买车,老妈要说买新能源汽车,我老爸说要燃油汽车,他们问我的意见,说实话我自己也不知道咋选。首先是新能源汽车,新能源汽车是指采用非常规的车用燃料作为动力来源(或使用常规的佳士科技深挖高端焊接领域,持续的技术研发才是硬道理据中研网消息,随着数字化技术日益成熟,代表处动地接技术的数字焊机数字化控制技术业已稳步进入市场。港珠澳大桥工程中欧高铁项目航天工程琼州海峡跨海通道工程等国家大型基础工程,有效地促进华为传来好消息!鸿蒙系统用户突破3亿,网友却表示套壳安卓阅读下面文章之前,希望您能够在上方点个免费的关注!接下来您每天都能够收到免费的国际资讯哟!您的关注是我的动力多多支持下嘛!!随着中国科技实力的提升,国内越来越多科技企业出现了崛起的台积电回应涨价方案遭苹果拒绝国产台积电被美帝公司卡脖子?震惊!台积电被美帝公司卡脖子,荷兰阿斯麦公司(ASML)为何要听?苹果明确拒绝了台积电2023年的涨价要求。由于芯片上游关键材料涨价,芯片代工成本上涨1020,台积电想提高芯片价格微短剧进阶战,抖音快手争先抢破亿文娱商业观察文阿木开机被刷屏,一部烂片又破亿。这是苏醒的歌曲破亿中的歌词,吐槽的是娱乐圈各种畸形行为,如今,也同样适用于微短剧领域。近日,各大平台多部微短剧剧集纷纷破亿,以快手暑期GoogleAds中国第一社群2022年09月29日一分钟跨境新闻分享GoogleAds中国第一社群跨境日报NO。1行业新闻速递1。亚马逊更新33种产品类型的属性配置2。全球电商App广告支出同比下降超503。梅西百货将在假日购物季雇佣41000多名天然气概念股大全股票A股天然气概念股气田中国石油601857最大的原油和天然气生产商,国内能源三巨头之一公司主要业务包括原油及天然气的勘探开发输送生产及销售,天然气的输送及销售中国海油600938
华为Mate50实测砸核桃,结果舒服了前几天,我们跟大家聊了华为昆仑玻璃的事。华为Mate5010倍抗摔,诺基亚输了不仅新机搭载了号称10倍抗摔的昆仑玻璃,同时Mate30Mate40P40P50等系列10款机型,还能赶集啦!北京门头沟京西古道今天办起创意大集北京日报客户端记者张骜王海欣通讯员赵萌9月17日,门头沟王平镇古道创意大集在韭园村拉开序幕,首届古道创意大集共有5类特色主题活动,市民可以现场感受农事劳作制作传统美食购买特色农产品暴跌800亿,关店400家,永辉超市靠什么东山再起?来源首席数智官首席数智官(IDshouxishuzhiguan)hello大家好,我们是首席数智官,研究产业数字化已经10年。在长期的工作中,我们一直试图寻找新品牌是如何借助数字化华为Mate50Pro首发昆仑玻璃实测砸核桃一口气三个完好无损在Mate50发布会上,华为推出了昆仑玻璃,除了是Mate50Pro昆仑破晓昆仑霞光两款素皮版的正面标配,华为还推出了Mate系列P系列的旧手机更换昆仑玻璃服务。那么在实战中,这款佛教四大名山,竟有两座都是抢自道教?道教这口恶气不能忍佛道两界的道观和寺庙,都喜欢寻着一些名山大川修建,与世隔绝修佛修仙。道教作为我国本土宗教,在选址方面是否会更胜一筹呢?道教有四大名山,第一座山是湖北武当山。看过金庸小说的,对武当山禅养瑜伽,竹林民宿,云海日出,来西九华山开启原生态的康养之旅我们回归至人类最原始的境界树木为宅,空山新雨临水择居,我们在历史的痕迹中寻找到一片片净土,心灵在此停栖遇见西九华山康养度假,西九华山景区为您定制专属养心计划山中禅修瑜伽静心中原竹海2002年,广州逃犯变身高僧,6年赚几千万,开豪车和女弟子住豪宅2016年,番禺市警方通过大数据分析,发现江苏泗阳一座有名的寺庙住持,很可能就是杀人潜逃了16年的力天佑。可是,当警方悄悄摸过去时却发现,这位住持竟突然消失不见,而对周围村民的暗访华为手机能砸核桃了?让人想起20年前的诺基亚未来网北京9月15日北京电(记者王军伟)近日,华为推出最新款Mate50Pro手机,掀起网友热议。据悉,该机选用了高强度昆仑玻璃作为手机面板,有博主实测用该手机砸核桃后仍完好无损。浙江6条适合初秋徒步的古道,有你走过的吗?在秋风送爽的季节,小布为你推荐6条浙江超适合9月初秋打卡的古道。绍兴上青古道图源绍兴文旅发布一路伴着溪流,整条上青古道由日铸岭古道陶宴岭古道万寿山古道三部分组成。若要论景致最佳所在国战征途手游龙途天下九州王朝9月2日明日上午10点新区开启嗨,各位朋友们大家好呀今天给大家分享下国战征途手游龙途天下九州王朝最新区的消息!龙途天下九州王朝是一款角色扮演类国战手游,融合PK战争休闲竞技BOSS争夺等众多游戏内容。八国国战游宝宝出生后这些事不要做可以亲吻宝宝,但不要亲宝宝的嘴和手即使是爸爸妈妈也要克制住,大人口腔携带众多病菌,尤其是老年人携带的病菌更多,新生儿免疫系统还没建立好比较脆弱,这个问题要引起全家人重视宝宝小手会放
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网