
Django
HBLQ_GK
做一个健康快乐的程序员!
展开
-
Django表单类验证功能
在Django的开发中,不管是使用前端模板开发,还是前后端分离开发,基本都会用到表单,而在后端层面做表单的验证是很重要的,本文主要说明Django后端对表单的验证功能。通常来说,我们在Django后端写表单验证的时候,在不使用Django的表单类的情况下,通常会使用接收前端通过POST方法传递过来的表单数据,然后逐一验证,就像这样:class UserInfoView(View): ...原创 2019-12-14 18:46:15 · 357 阅读 · 0 评论 -
Django的models的分层设计(避免循环引用)
在一个Django项目中,通常都会有多个app,在每个app中都有一个models.py文件用来存放相应的模型类(模型类是数据库表的映射)。而在模型类与模型类之间很有可能会存在某种关联,比如外键关联,这时,相关联的模型类很有可能不在同一个models.py文件中,很有可能是跨越了app来关联的。这时,如果app1中的models.py文件引用了app2中的models.py文件来建立外键关联,而a...原创 2019-12-09 21:25:21 · 1305 阅读 · 0 评论 -
一个Django导出可定制excel表格的封装可复用模块
之前我做的一个Django项目需要导出excel表格,具体场景描述:数据库中有用户表,商品表,订单表等等数据表,每张数据表都有多个字段,而客户不需要导出所有字段,只需要导出每张表部分字段。基于这样的场景,我不可能每一张数据表的excel导出都单独写一个方法,因此我尝试写了一个excel导出的封装类,每次需要导出excel时,只需要传入指定参数创建一个对象,然后调用该对象的work_on方法即可实现...原创 2019-11-30 11:18:19 · 414 阅读 · 3 评论 -
Django ORM中的元数据Meta
元数据:指的是除了字段以外的所有内容,这些内容不是必须的。在Django ORM中实现元数据的定义只需要在模型类中添加一个Meta子类即可,然后就可以在该子类下增加各种元数据选项了。下面列举出常用的元数据选项:class Books(models.Model): """图书类""" name = models.CharField(max_length=20) ...原创 2019-11-29 21:16:55 · 427 阅读 · 0 评论 -
Django使用Celery实现异步任务
什么是Celery?Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度如图所示,整个Celery架构由4部分组成:user、broker、workers、task result。其中:user负责生成需要处理的任务,然后交给broker任务队列,等待被处理,workers可以由多个worker组成,然后从broker中...原创 2019-11-29 14:10:29 · 529 阅读 · 1 评论 -
Django ORM中null和blank的区别
在Django中定义模型类的时候,常常会有用到null和blank这两个参数,比如下面给某个模型类定义了一个name字段name = models.CharField(max_length=10, null=True, blank=True)这里同时定义了null和blank为True,这两个参数都是允许为空的意思,但是却是有区别的:null=True表示在数据库层面允许为空。...原创 2019-11-28 15:14:30 · 1276 阅读 · 0 评论 -
Django ORM的外键ForeignKey中的on_delete的参数解析
以两个模型类为例,一个是老师类,一个是学生类,学生类通过外键关联老师类,实现一(老师)对多(学生)的关联。class Teachers(models.Model): """老师类""" name = models.CharField(max_length=10)class Students(models.Model): """学生类""" name = ...原创 2019-11-27 16:14:04 · 1358 阅读 · 0 评论 -
Django ORM常用字段类型
在设计模型类时,字段类型的选择至关重要,对项目的开发,甚至性能都会有影响。下面我列举出了在Django中,设计模型类时常用的字段类型,以对应MySQL为例。自增类型:AutoField 能存储11个字节的整数,对应MySQL中的int(11),自增主键,Django是默认提供该字段的。二进制类型:BinaryField 可存入二进制数据。布尔类型:BooleanFi...原创 2019-11-27 15:15:33 · 441 阅读 · 0 评论 -
django-rest-framework实现三种分页
我们通常在使用Django为前端或者用户提供接口的时候,时常会遇到返回大量数据信息的情况,比如:有1000条用户信息,有1000条新闻文章,有1000条商品信息等等。但是我们不可能将所有数据从数据库获取后一股脑的全部返回,这样相当不好,会增大服务器压力,同时也会增加前端渲染压力,也不方便前端或者用户使用。这种情况下,我们就需要用到分页处理。顾名思义,就是将大量数据进行分页,每页只有少量数据,在...原创 2019-11-12 18:52:46 · 1334 阅读 · 1 评论 -
Django admin配置django-ckeditor
对于内容管理系统而言,富文本编辑器是必不可少的功能组件,在Django自带的管理后台admin中,我们可以使用ckeditor,Django有相关的插件(django-ckeditor)可以帮助我们快速的配置完成并使用。我在这里举一个小例子来完成django-ckeditor的安装配置,在Django后台admin中实现富文本编辑器的功能,包含图片的上传。例子:数据库中有一张存放用户个人信...原创 2019-10-30 18:05:55 · 713 阅读 · 0 评论