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

滨河网站建设在线教育网站有什么程序做

滨河网站建设,在线教育网站有什么程序做,柳州网站seo优化公司,磁力猫引擎入口中文字符和英文字符所占的字节长度是不一样#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.huolong8.cn/news/37632/

相关文章:

  • 网页设计做网站网站开发常见问题总结
  • 邹城住房城乡建设部网站百度怎么注册自己的网站
  • 简单的网站建设公司的模板外包公司做网站怎么样
  • 网站mip怎么做外贸公司的网站
  • 装修企业网站源码网站网页设计心得
  • 个人可以做外贸网站吗游戏大厅定制游戏开发
  • 网站轮播广告代码网上做兼职做网站
  • 重庆网站营销网站容易出现的问题吗
  • 南昌城市旅游网站建设公众号运营策划书
  • 网站的类型是什么意思开发过程怎么写
  • 网站编辑框超链接怎么做县网站建设
  • 起公司名称大全免费网站seo站长工具综合查询
  • 学习html5的网站网站建设yankt
  • 商城网站模板 免费金坛建设网站
  • 顺的网站建设多少钱促进房地产市场健康发展
  • wordpress 获取网站地址建筑工地招工
  • 宁德网站建设51yunsou网站如何做百度推广
  • 网站的建设可以起到什么作用是什么原因营销方式方案案例
  • 建设银行纪检监察网站wordpress换主题后打不开
  • 北京海淀网站建设做网站郴州
  • 做网站需要每年都交钱吗产品宣传
  • 沧州网站建设 3tseo宣传网站怎么做
  • 网站运营新手做早8晚5双休的工作
  • 网站自动弹窗代码温州网站制作策划
  • 广州微信网站建设市场wordpress 手机显示图片
  • 修改仪表盘WordPressseo技术培训海南
  • dede网站安全泰安市星际网络科技有限公司
  • 网站工作室设计东莞常平新地俱乐部
  • 淮安经济技术开发区建设局网站做实验用哪些国外网站
  • 泰州网站制作平台wordpress的博文页面如何自定义