Web Development with Django Cookbook(Second Edition)
上QQ阅读APP看书,第一时间看更新

Respecting the import order in Python files

When you create the Python modules, it is good practice to stay consistent with the structure in the files. This makes it easier for other developers and yourself to read the code. This recipe will show you how to structure your imports.

Getting ready

Create a virtual environment and a Django project in it.

How to do it…

Use the following structure in a Python file that you create. Just after the first line that defines UTF-8 as the default Python file encoding, put the imports categorized in sections, as follows:

# -*- coding: UTF-8 -*-
# System libraries
from __future__ import unicode_literals
import os
import re
from datetime import datetime

# Third-party libraries
import boto
from PIL import Image

# Django modules
from django.db import models
from django.conf import settings

# Django apps
from cms.models import Page

# Current-app modules
from . import app_settings

How it works…

We have five main categories for the imports, as follows:

  • System libraries for packages in the default installation of Python
  • Third-party libraries for the additionally installed Python packages
  • Django modules for different modules from the Django framework
  • Django apps for third-party and local apps
  • Current-app modules for relative imports from the current app

There's more…

When coding in Python and Django, use the official style guide for Python code, PEP 8. You can find it at https://www.python.org/dev/peps/pep-0008/.

See also

  • The Handling project dependencies with pip recipe
  • The Including external dependencies in your project recipe