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

重庆网站建站系统长春市星宿科技网站建设公司怎么样

重庆网站建站系统,长春市星宿科技网站建设公司怎么样,能制作网站的软件,做设计专业的能做网站吗中文字符和英文字符所占的字节长度是不一样#xff0c;一个是2个字节#xff0c;一个是1个字节#xff0c;这给我们用英文的web框架开发中文app带来了麻烦。比如Django自带过滤器truncatewords并不支持截取中文#xff0c;另外模型中CharField中的max_length选项用于限制中…中文字符和英文字符所占的字节长度是不一样一个是2个字节一个是1个字节这给我们用英文的web框架开发中文app带来了麻烦。比如Django自带过滤器truncatewords并不支持截取中文另外模型中CharField中的max_length选项用于限制中英混合字符串的长度基本上是失真的需要额外自定义表单验证限制某些字段比如标题的长度。小编我今天就给大家分享几个例子和解决方案。我们同样以博客的Article模型为例我们试图限制标题的最大长度为90 个字符。class Article(models.Model):Article Modeltitle models.CharField(Title, max_length90,db_indexTrue)90个英文字符也就是10来个单词作为标题长度刚好合适。如果中文标题允许长达90个中文字符这将是个恐怖的存在也就意味着这里标题的长度限制对于中文或中英混杂字符串等于形同虚设。注意: Django CharField的max_length是按字符数来限制的而不是字节数。同样Django的length模板过滤器和python的len函数默认也是统计字符数而不是字节数。更好的解决方法我们统计中英混合字符串的字节数然后通过表单实现按字节数来限制代码如下所示。我们先通过python的encode方法将混合字符串转化为二进制数据再使用python的len方法统计字节长度。用该方法“我是a会被统计成5而不是3。该方法并不完美但我们可以实现限制标题长度为90个英文字符或45个中文字符。class ArticleForm(forms.ModelForm):class Meta:model Articleexclude [author, ]def clean_title(self):title self.cleaned_data[title]if len(title.encode(gb18030)) 90: # 转成二进制统计字节 b\xce\xd2\xca\xc7ab\xd6\xed)raise forms.ValidationError(The length of title must be shorter than 90 chars.)return title另一个例子是我们经常需要根据正文截取文中开头部分作为摘要使用Django自带的模板过滤器truncatechars和truncatewords仅适用于罗马及英文字符的但对中文字符串完全不适用如下所示{{ article.body|striptags|truncatewords:20 }}这是我们需要自定义模板过滤器截取中英混合字符串网上已有现成可用代码我在这里转贴给大家备用。如果你不知道如何自定义Django模板过滤器及如何使用它们请强烈阅读本文Django基础(16): 模板标签(tags)的分类及如何自定义模板标签from django import templatefrom django.template.defaultfilters import stringfilterregister template.Library()register.filterstringfilterdef cut_str(str, length10):截取字符串使得字符串长度等于length并在字符串后加上省略号 is_encode Falsetry:str_encode str.encode(gb18030) #b\xce\xd2\xca\xc7ab\xd6\xedis_encode Trueexcept:passif is_encode:l length*2if l len(str_encode):l l - 3str_encode str_encode[:l]try:str str_encode.decode(gb18030) ...except:str_encode str_encode[:-1]try:str str_encode.decode(gb18030) ...except:is_encode Falseif not is_encode:if length len(str):length length - 2return str[:length] ...return str使用时先载入自定义标签再按如下使用即可{% load your_tags %}{{ article.body|striptags|cut_str:120 }}相关阅读Django基础(15): 模板过滤器(filter)的工作原理及如何自定义模板过滤器Django实战: 利用自定义模板标签实现仿CSDN博客月度归档Django实战专题: 开发专业博客(1)之内容管理后台开发大江狗 - 微信公众号【Python Web与Django开发】2020.2.15
http://www.sadfv.cn/news/33949/

相关文章:

  • 做网站每个月可以赚多少网站后台数据库丢失
  • 硬件开发网站十大经典营销案例
  • 在网站上做教育直播平台多少钱网页设计与制作题目
  • 网站开发过程的分工电子商务有哪些职业
  • 网站如何注销美术教师网站建设心得体会
  • 四川住房和城乡建设厅网站首页优秀flash网站设计
  • 网站重构南宁seo诊断
  • 建设银行+贷款+查询+网站98建筑人才网
  • 宁波外贸网站设计公司wordpress 站长统计插件
  • 网站制作平台能赚钱吗代理一款网页游戏需要多少钱
  • 网站开发的主要技术经典网站建设
  • 网站主页面设计多少钱品牌网站建设新闻
  • 去年做哪些网站能致富全球交流软件app
  • wordpress 收费 视频优化网站seo公司
  • 在京东上怎样做网站客户管理系统源代码
  • 南京 网站建站湖南省郴州市天气
  • 网页制作官方网站公司最近想做个网站怎么办
  • c 网站做微信收款功能西宁网站制作费用是多少钱
  • 网站开辟两学一做专栏建站哪家好论坛
  • 惠州手机模板建站小的外贸公司值得去吗
  • 建设田达摩托车官方网站织梦网站有会员系统怎么做
  • wordpress 首页位置佛山网站推广优化公司
  • 网站空间在那里买房产集团公司网站建设方案
  • 创意网站开发wordpress登陆过程
  • 网站建设行业资讯长沙企业建站销售电话
  • 找公司网站建设ih5网页设计
  • 营销网站资讯类网站怎么做
  • 广州建设水务局网站网站设计范文
  • 政务网站源码东坑镇仿做网站
  • 网站宽度设置网页设计相关书籍