Django 官方代码风格指南学习摘要

2020-03-24  本文已影响0人  haiiiiiyun

Python 风格

PEP 8 中限制行长最多 79 个字符,但 Django 允许最多到 119 个字符(这是 GitHub 代码审查工具允许的宽度)。 PEP 8 限制文档、注释、docstring 的行长为 72 个字符, Django 将它们限制到 79 个字符。

使用 Flake8 来检查代码质量。

# 这样使用:
def foo():
    """
    Calculates something and returns the result.
    """
    pass
# 不要这样使用:
def foo():
    """
    Calculate something and return the result.
    """
    pass

模板风格

视图风格

数据模型风格

# 正确的风格:
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)
# 正确的风格:
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 MyModel(models.Model):
    DIRECTION_UP = 'U'
    DIRECTION_DOWN = 'D'
    DIRECTION_CHOICES = (
        (DIRECTION_UP, 'Up'),
        (DIRECTION_DOWN, 'Down'),
    )

django.conf.settings 的使用

在模块顶层(当模块被 import 时会自动执行的部分)不要存取 django.conf.settings。 Django 项目只能调用 django.conf.settings.configure() 函数一次(仅一次)来对 settings 进行配置。settings 是一个 LazyObject 对象,对其存取时才会真正调用 django.config.settings.configure() 来对 settings 进行配置。

如果在模块顶层对其进行了存取,就会自动完成对 django.conf.settings.configure() 的调用,从而会影响之后的 settings 的配置。

其它

参考文献: Django Coding style

上一篇 下一篇

猜你喜欢

热点阅读