Django框架专业开发者的最佳实践

Django框架专业开发者的最佳实践

Django是一个开源的、基于Python的框架,用于构建Web应用程序。为了使我们的Django代码更具可读性和效率,我们应该遵循一定的规则/做法。这些不应该被看作是使用Django的正确方法或唯一方法,而是使用Django框架的最佳实践。

代码规范

一般来说,代码应该是干净的、简洁的、可读的、可测试的和DRY __(不要重复自己)。尽量合理地遵循PEP8指南。

使用虚拟环境

避免对项目的依赖性使用全局环境,因为它可能产生依赖性冲突。Python 不能同时使用多个软件包版本。如果不同的项目需要同一个包的不同不兼容的版本,这可能是一个问题。始终在一个虚拟环境中隔离你的项目需求和依赖关系。最常见的方法是使用 virtualenv。

Requirements.txt File

Requirements是你的项目在运行时使用的Python包(依赖项)的列表,包括每个包的版本。更新你的requirements.txt文件对与其他开发者的正常合作很重要。这个文件包含在你的代码库中时,你可以通过在终端执行一行来更新你的虚拟环境中安装的所有包。

为了生成一个新的requirements.txt文件或更新现有的文件,使用这个命令。请确保你在一个正确的目录下。

(virtualenv) $ pip freeze > requirements.txt

在向版本库推送代码前更新requirements.txt文件,在从版本库中提取代码后安装requirements.txt文件是一个好的做法。

避免写肥胖的观点

你应该写肥大的模型,瘦小的视图,这意味着尽量把大部分的逻辑写在模型本身。

比如说。假设我们正在实现向用户发送电子邮件的功能,最好是在模型中扩展一个电子邮件函数,而不是在控制器/视图中写这个逻辑。这使得你的代码更容易进行单元测试,因为你可以在一个地方测试电子邮件逻辑,而不是在每个控制器/视图中重复测试。

正确的模型命名

一般来说,模型代表一个单一的对象或实体,所以模型名称应该是一个单数名词。

# Bad practice
class Users(models.Model):
  pass
  
# Good practice
class User(models.Model): # use 'User' instead of 'Users'
  pass

在模型关系中使用正确的相关名称

相关名称指定了从父模型返回到子模型的反向关系。用复数表示related-name是合理的,因为它返回一个查询集

# parent model
class Owner(models.Model):
    pass
   
# child model
class Item(models.Model):
    # use "items" instead of "item"
    owner = models.ForeignKey(Owner, related_name ='items')

Django 模板

位置 :模板可以放在两个地方,要么放在app目录下,要么放在项目的根目录下。建议把模板放在根目录下,但如果你想让你的应用程序可重复使用(在多个地方使用),你应该把它放在app目录下。

#Good practice
root_folder/
    my_app1/
    my_app2/
    my_app3/
    templates/

#If you want to make your app reusable
root_folder/
    my_app1/
        templates/
    my_app2/
        templates/
    my_app3/
        templates/

命名 :正确地命名你的模板有助于任何新的开发人员立即拿起你的django代码。好的模板名称看起来像这样

[application]/[model]_[function].html

例如,创建一个模板来列出我的地址簿(address_book应用程序)中的所有联系人(Contact模型),我将使用以下模板。

address_book/contact_list.html

类似地,联系人的详细视图将使用

address_book/contact_detail.html

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程