当前位置: 首页 > 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://wiki.neutronadmin.com/news/37632/

相关文章:

  • 网站建设课程设计报告php那非西
  • 有一个做场景动画的网站电商网站公司
  • 网站app搭建短视频代运营费用明细
  • 怎么刷网站权重公司小程序怎么制作
  • 网站开发中系统部署与维护要求建网站的电脑可以换位置吗
  • 简要描述创建商务站点的商务网站建设微信运营销售
  • 网站如何屏蔽iplogo艺术字转换器
  • 国和建设集团网站东莞长安网站优化公司
  • 网站开发首选语言点样做网站
  • 做视频网站容易收录吗网站建设程序员
  • 个人网站免费模板下载办公oa系统排行
  • wap网站建设策划方案厦门专业做网站公司
  • 医疗微网站建设计划书自己网上开店怎么做
  • 吉安哪家做网站的公司好logo制作流程
  • 做的网站怎么把技术支持去掉做的网站打不开
  • 网站模板网站泉州住房和城乡建设部网站
  • 越南人一般去哪个网站做贸易企业门户网站建设jsp
  • 哈尔滨网站建设网络优化东莞网络推广策略
  • 网站开发三层十堰外贸网站建设
  • 济宁住房和城乡建设局网站首页网站开发和c语言
  • 建个网站能赚钱吗千锋教育和达内哪个好
  • 四川手机网站设计东莞最好的网站建设价格低
  • 移动端网站建设的意义网页设计与网站建设试题及答案
  • 网站开发部门结构成都seo网站建设
  • 人力资源做网站的好处开展网站建设服务
  • 网站建设技术要求上海专业网站建设流程
  • 新闻头条新闻优化网站平台
  • 搜索不到网站的关键词龙岩网站开发较好的公司
  • 旅游门户网站模板WordPress更改logo插件
  • 家政保洁服务网站模板南宁网站外包