Defining classes to support persistence
Before we can work with persistence, we need some objects that we want to save. There are several design considerations related to persistence, so we'll start with some simple class definitions. We'll look at a simple microblog and the posts on that blog. Here's a class definition for Post:
import datetime
class Post:
def __init__( self, date, title, rst_text, tags ):
self.date= date
self.title= title
self.rst_text= rst_text
self.tags= tags
def as_dict( self ):
return dict(
date= str(self.date),
title= self.title,
underline= "-"*len(self.title),
rst_text= self.rst_text,
tag_text= " ".join(self.tags),
)The instance variables are the attributes of each microblog post: a date, a title, some text, and some tags. Our attribute name provides us a hint that the text should be in RST markup, even though that's largely irrelevant to the rest of...