Django Forms Functionality
· β˜• 3 min read
1. Automatically Generating HTML Form Elements A Widget is the tool used to render an HTML element. Specifying a widget 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) Output of CommentForm().as_table() 1 2 3 4 5 6

Operations Tracking and Solution Design
· β˜• 3 min read
1. Terminology xpath: There are two approaches, the exact path and the approximate path. Exact path: body>div[0]>div[3]>ul>li[5]>a[0], walking up from the clicked element all the way to the root node and recording every node along the way. Approximate path: body>div.header>div.nav>a[23], which on top of the former omits from the upward path any node that is not on the whitelist.

Django ORM and SQL
· β˜• 7 min read
1. Basic Concepts ORM: Object Relational Mapping. Its job is to map between a relational database and objects. No complex SQL statements are needed β€” operating on data is as simple as operating on objects. QuerySet: the list of objects for a given model. A QuerySet lets you read data

Haystack Full-Text Search
· β˜• 3 min read
A quick word on the project requirements: the team needed to publish documentation externally. The documents are written in Markdown and need to be published as HTML. At first we used an Nginx + Jekyll solution. As the documentation grew, the document system developed a strong need for search. I

Jenkins Integrated GitHub Development
· β˜• 4 min read
1. Basic Concepts Continuous Integration Continuous integration emphasizes that once developers commit new code, a build and (unit) test run immediately. From the test results we can determine whether the new code and the existing code integrate correctly. Continuous Delivery Building on continuous integration, continuous delivery deploys the integrated code