Summary
In this chapter, we continued our implementation of the ShapeEditor by adding three important functions: the list view and the ability to import and export shapefiles. While these aren't very exciting features, they are a crucial part of the ShapeEditor.
In the process of implementing these features, we learned how to use Django's templating language to display a list of records within a web page. We saw how to use the zipfile
standard library module to extract the contents of an uploaded shapefile before opening that shapefile using OGR, and we discussed the concept of wrapping and unwrapping geometries to deal with the quirky way these are handled by the shapefile format. Finally, we saw how to use OGR to create a new shapefile that can be compressed using the zipfile
library before being returned to the caller using the Django web interface.
With this functionality out of the way, we can now turn our attention to the most interesting parts of the ShapeEditor: the code...