Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Оглавление

Стиль исходного кода

Перевод оригинальной статьи на http://www.djangoproject.com/documentation/contributing/#coding-style.

Пожалуйста, следуйте следующим правилам при разработке своих приложений:

  • Если особо не оговорено иное, надо использовать стандарт PEP 8.

    Можно использовать утилиту аналогичную pep8.py для проверки исходного кода.

  • Для отступа следует использовать четыре пробела.

  • Пользуйтесь символами подчёркивания (_), а не выделениемРегистра при указании имён переменных, функций и методов (т.е., poll.get_unique_voters(), а не poll.getUniqueVoters()).

  • Используйте заглавные буквы в определении класса или функций, которые возвращают классы (например, InitialCaps).

  • Подготовьте все строки к переводу. За дополнительной информацией обратитесь к главе «Интернационализация».

  • В строках документации используйте «активные слова», например:

    def foo():
        """
        Calculates something and returns the result.
        """
        pass
    

    а не:

    def foo():
        """
        Calculate something and return the result.
        """
        pass
    

  • Не указывайте своё имя в коде. Политика Django предусматривает хранение имён авторов кода в файле AUTHORS.

Шаблоны

  • В шаблонах используйте только один пробел между фигурными скобками и содержимым тега.

    Делайте так:

    {{ foo }}
    

    а не так:

    {{foo}}
    

Представления

  • В представлениях первым параметром всегда должен быть request.

    Делайте так:

    def my_view(request, foo):
        # ...
    

    а не так:

    def my_view(req, foo):
        # ...
    

Модели

  • Имена полей должны определяться в нижнем регистре с использованием символа подчёркивания.

    Делайте так:

    class Person(models.Model):
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
    

    а не так:

    class Person(models.Model):
        FirstName = models.CharField(max_length=20)
        Last_Name = models.CharField(max_length=40)
    

  • Класс Meta должен описываться после определения полей, отделённый от них пустой строкой.

    Делайте так:

    class Person(models.Model):
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
    
        class Meta:
            verbose_name_plural = 'people'
    

    а не так:

    class Person(models.Model):
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
        class Meta:
            verbose_name_plural = 'people'
    

    и не так:

    class Person(models.Model):
        class Meta:
            verbose_name_plural = 'people'
    
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
    

  • Порядок внутренних классов модели и стандартных методов должен быть таким (ничто из нижеперечисленного не является обязательным):

    • Определение всех полей класса.

    • class Meta.

    • class Admin.

    • def __unicode__().

    • def __str__().

    • def save().

    • def get_absolute_url().

    • Любые свои методы.

  • Если для модели определена опция choices, определите выбор в виде кортежа кортежей, использовав заглавные буквы для его имени. Определение лучше помещать в начале файла с моделями или перед классом. Пример:

    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    


Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
504 49 130 71

Версия книги
1.0 2.0
Версия 2.0 в процессе перевода!

Мой луч
Многообразие света

Полезное
Актуальные вакансии, Python работа для python-разработчиков.


Скачать в формате
CHM от 2 сентября

Заказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта.
Чем чаще заказываете — тем больше перевожу.

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061

Книга помогла реализовать:
Проект «Мой луч»
АРМ УФМС.


Мой вебсайт стоит666 337,31 руб

© 2008-2009 Ruslan Popov @ gmail.com Powered by Django 1.1 beta 1 SVN-11114
Главная | Архив новостей | Общение | Площадка | Примеры OpenID