2018年的第一场雪,比2002年来得更晚一些
记得之前有分享过Django开发相关的系列文章(可在博客右上方自行搜索),内容包括模版、视图、路由等。那么本篇再补充一些Django开发过程中常用到的一些功能代码块,内容涉及前端、后端相关功能代码。这些代码块都是平常开发中常用的,因此在此做个备份,方便查询。
前端功能
搞安全的还需要会前端?当然啊,搞安全的也需要出产品,出产品了没前端不就显得很low吗?不过自己写前端太累了,因此还得用框架,这里推荐Bootstrap。在尝试使用文章下方介绍的前端代码前,先在代码中添加上Bootstrap框架提供给的css、js连接。
面板折叠
这个功能经常在侧边菜单栏中用到,面板折叠可有效的保持界面整洁。
表格分页
表格分页前端比较简单,想要实现真正的分页显示数据,需要结合后端代码,文章后面会介绍。
控制表格单元格内容自动换行
有些时候表格中单元格内容太长,会导致表格整体很不好看,因此对于内容会很长的表格列需要添加如下style
弹出框(可编辑)
有些时候需要修改一些表格数据,之前的做法是点击一个按钮,跳转到一个修改的页面,但这种做法不够优雅,因此可以选择点击按钮弹出一个可编辑的对话框。
弹出提醒框(不可编辑)
这个功能主要作用删除数据、修改数据时的提醒。
搜索框自动补全
这个就厉害啦,当搜索一些资源的时候,如果能自动补全是不是会方便很多呢?
ajax请求
用ajax发送请求有好有坏,具体用法可参考:https://thief.one/2017/09/14/3/
界面面板布局
这个纯粹为了装逼。
表格单选框
表格显示数据是常见的功能,一般情况下需要多表格数据进行删改,因此批量选中就很重要。一般表格中的批量选择,可以使用单选框实现。
后端功能
表格分页
前面介绍了前端的分页,那么后端怎么写分页的功能呢?django框架有内置的分页模块Paginator,其他框架也有,比如flask等。
但个人使用以后发现性能不好,因为每次请求页面需要先获取所有的数据,再通过此模块计算出此页面需要展示的数据,当所有的数据量比较大时,返回就比较慢了(也可能是我没用对这个模块)。因此,我自己写了一个分页的模块。
这样不需要提前先查询出所有的数据存入内存,而只需要查询出总共存在多少条数据(注意,这里的查询语句由select *
改为select count(*
)会快很多)。获取到分页函数返回的page后,可以结合sql语句中的limit功能,查询分页要展示的数据内容。
session做身份认证
这个功能就是用来验证用户身份的,可配合登录功能,写一个装饰器函数,检查全局是否存在session值。(session值是一个字典格式,在用户登录时生成)
使用的话,直接在需要权限控制的函数上添加:
暂时就想到了这些,先记这么多吧,等以后遇上了再补充一些,o了