问题#1
我正在寻找在Django项目中声明额外数据的最佳实践。想象一下,我需要存储一个巨大的选择列表,以便在app1/models.py
中使用(我已经看到许多最佳实践不断在模型主体中声明这些选择(。在另一个场景中,假设我需要保留数十个配置数据,以便在views.py
中使用它们。在函数/类中声明它们是否常见?
在我看来,有两种常见的方法可以做到这一点。(甚至根本不确定推荐(
方法#1
实际上,我可以将它们全部保存在settings.py
文件中,并通过导入(如from django.conf import settings
(来访问它们。
settings.py
:
...
NBA_TEAMS = (
("red", "Bulls"),
("yellow", "Lakers"),
...
)
方法#2
将它们全部保存在settings.py
旁边的一个名为data.py
的文件中,并尝试在设置文件的末尾导入,如下所示。
settings.py
...
try:
from .data import NBA_TEAMS, ..
except:
pass
第2期
有没有在Django项目中创建模块的最佳实践?想象一下,我需要创建一个数据验证器函数,用于接收来自views.py
中表单提交的字符串数据。我应该把这些类型的函数/验证器/生成器放在哪里?
views.py
from --- import validateUsername
def submission(request):
...
form = ContactForm(request.POST)
if validateUsername(form.cleaned_data['username']):
...
对于这些问题,有什么最佳实践吗?非常感谢。
根据我对这两个问题的建议,您应该创建一个constants.py
和一个utils.py
文件。
现在取决于您的用例,如果您想在项目中的多个应用程序中使用相同的常量,然后在manage.py
旁边的根目录下定义它,或者如果这些常量是特定于应用程序的,则在views.py
文件旁边的特定应用程序文件夹下创建它。
与utils.py
相同,您应该在一个utils.py文件中定义所有实用程序函数/方法,并在项目中的所有应用程序中使用它。