当前位置: 首页 > 后端技术 > Python

Django官方代码风格指南学习总结

时间:2023-03-26 18:09:51 Python

Python风格下面没有特别说明的,一律遵循Python的PEP8约定,详见Python代码风格指南PEP8总结。PEP8将行长度限制为最多79个字符,但Django允许最多119个字符(这是GitHub的代码审查工具允许的宽度)。PEP8将文档、注释和文档字符串限制为72个字符,而Django将它们限制为79个字符。使用Flake8检查代码质量。每级缩进使用4个空格变量、函数和方法名称使用下划线_而不是驼峰式。例如,它应该写成poll.get_unique_voters()而不是poll.getUniqueVoters()。返回类的类名和工厂函数名应该使用InitiaCaps形式尽可能使用方便的导入,比如使用fromdjango.views.genericimportView而不是fromdjango.views.generic.baseimportView中文档字符串,使用“动作语句”,例如:#像这样使用:deffoo():"""计算一些东西并返回结果。"""pass#不要使用这个:deffoo():"""计算一些东西并返回结果。"""pass而且只有一个空格,比如{{foo}}而不是{{foo}}view样式视图函数的第一个参数应该是request,比如defmy_view(request,foo):insteadofdefmy_view(req,foo):Datamodelstyle数据项名称要全部小写,使用下划线而不是驼峰式,如:#正确的风格:classPerson(models.Model):first_name=models.CharField(max_length=20)last_name=models.CharField(max_length=40)#错误的样式:classPerson(models.Model):FirstName=models.CharField(max_length=20)Last_Name=models.CharField(max_length=40)classMeta应该放在数据项定义之后,之间用空行分隔,如:#正确的样式:classPerson(models.Model):first_name=models.CharField(max_length=20)last_name=models.CharField(max_length=40)classMeta:verbose_name_plural='people'#不要这样写:classPerson(models.Model):first_name=models.CharField(max_length=20)last_name=models.CharField(max_length=40)classMeta:verbose_name_plural='people'#要么不要这样写classPerson(models.Model):classMeta:verbose_name_plural='people'first_name=models.CharField(max_length=20)last_name=模特。CharField(max_length=40)如果定义了__str__(支持Python3之前的__unicode__),则应该在数据模型的类上使用python_2_unicode_compatible()装饰器数据模型类中的布局顺序:数据项定义custommanagerclassMetadef__str__()defsave()defget_absolute_url()其他自定义方法选择应定义为元组的元组,类中应设置单字符选项名称因为是常量,所以使用全大写样式,如:classMyModel(models.Model):DIRECTION_UP='U'DIRECTION_DOWN='D'DIRECTION_CHOICES=((DIRECTION_UP,'Up'),(DIRECTION_DOWN,'Down'),)在模块顶层使用django.conf.settings(导入模块时自动执行的部分)不要访问django.conf.settings。一个Django项目只能调用一次(仅一次)django.conf.settings.configure()函数来配置设置。settings是一个LazyObject对象,访问时实际调用django.config.settings.configure()配置设置。如果在模块顶层访问,会自动完成对django.conf.settings.configure()的调用,影响后续配置settings。所有其他字符串都应该国际化。随着代码的发展,删除未使用的导入。Flake8将为未使用的导入显示警告消息。如果要删除它们,请在代码行末尾添加#NOQA以删除行末的冗余导入。Whitespace不要在代码中写贡献者的名字,应该写在单独的AUTHORS文件中参考:DjangoCodingstyle