gpt4 book ai didi

python - 如何在 Django 中保持导入整洁?

转载 作者:太空狗 更新时间:2023-10-29 18:33:06 25 4
gpt4 key购买 nike

这似乎是一个主观问题,但我相信你们中的一些人可以使用一些很好的技术来确保 Django 项目中的导入保持可维护性。我习惯于在每个文件中列出大约 30 个不同的导入,这显然违反了 DRY 原则。因此,这不仅关乎美观,还关乎不重复代码。

我正在寻找一种使 Django 文件中的导入部分易于管理的方法。在我看来,一个好主意是为每种文件类型( View 、模型等)创建一个通用导入文件,然后在顶部导入,然后再导入特定于应用程序的导入文件。但这会导致很多不必要的开销吗?这些文件应该是什么样子,每种文件类型的重要类是什么?

更新

应要求,这里是我的 views.py 文件之一的示例。

from django.shortcuts import render_to_response, get_object_or_404
from shortcuts import render_to_context, render_template
from django.http import HttpResponseRedirect
from django.contrib.comments.models import Comment
from django.template import RequestContext
from django.contrib.auth.decorators import login_required
from django.views.decorators.http import require_POST

from django.core.urlresolvers import reverse

from models import Listing, LocationData

from django.template import RequestContext

import sys
import urllib
if sys.version_info <= (2, 5):
import simplejson as json
else:
import json

import forms
import sanitize

from models import RentListing, VacationListing, SaleListing

from django.forms.models import model_to_dict
from django.forms.formsets import formset_factory

from django.core.urlresolvers import reverse

如您所见,这真的很乱,因为每次我需要文件中的内容时,我都会添加到列表底部。按字母顺序排列显然会有帮助,但必须有比我现在正在做的更好的概括方法。

为了在实际文件中更短、更易于维护的导入部分,是否值得打破不使用 * 导入的样式指南?

最佳答案

你是对的,在处理 Django 导入时很容易忽略 DRY,或者通常使用 python 导入。

有时按域分离常见的导入,然后创建一个模块来管理这些导入是有益的。下一步是我对“不要使用 import *”这一个人规则做出的少数异常(exception)之一


stuff_i_always_use.py

import django.templates as templates
import tagalog.tagalog_appengine as tagalog
#etc

然后在一些文件中:

from stuff_i_aways_use import *

关于python - 如何在 Django 中保持导入整洁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com