博文
Django Forms 功能
· ☕ 3 分钟
1. 自动生成HTML表单元素 Widget,用来渲染成HTML元素的工具。 指定小部件 1 2 3 4 5 6 from django import forms class CommentForm(forms.Form): name = forms.CharField() url = forms.URLField() comment = forms.CharField(widget=forms.Textarea) CommentForm().as_table() 输出值 1 <tr><th><label for="id_name">Name:</label></th><td><input id="id_name" name="name" type="text" /></td></tr>\n<tr><th><label for="id_url">Url:</label></th><td><input id="id_url" name="url" type="url" /></td></tr>\n<tr><th><label for="id_comment">Comment:</label></th><td><textarea cols="40" id="id_comment" name="comment" rows="10">\r\n</textarea></td></tr> 指定表单字段为 Textarea 小部件,而不是默认的 TextInput 小部件。 自定义小部件的样式 1 2 3 4 class CommentFormClass(forms.Form):

运营埋点与方案设计
· ☕ 3 分钟
1. 名词解释 xpath : 分为精确路径和概略路径两种做法。精确路径 : body>div[0]>div[3]>ul>li[5]>a[0] ,从被点击的元素不断向上查找到根节点,并记录过程中每个节点。概略路径:body>div.header>div.nav>a[23],在前者的基础上省略上溯路径中非白名

Django ORM 之 SQL
· ☕ 8 分钟
1. 基本概念 ORM:对象关系映射,Object Relational Mapping。它的作用是在关系型数据库和对象之间作一个映射。不需要复杂的 SQL 语句,操作数据如同操作对象一样简单。 QuerySet:给定模型的对象列表。QuerySet 允许从数据库中读取数据,对其

Haystack 全文检索
· ☕ 5 分钟
简单介绍一下项目需求: 项目组需要对外发布文档,文档撰写使用的是Markdown,对外需要使用HTML。起初,使用的是Nginx+Jekyll的解决方案。随着文档的增加,文档系统对搜索功能有了强烈的需求。笔者在另外一篇文章中有所讨论,但是这几

Jenkins 集成 GitHub 开发
· ☕ 6 分钟
1. 基本概念 持续集成,Continuous Integration 持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。 持续交付,Continuous Delivery 持续交付在持续集成的基础上,将集成后