Questa potrebbe sembrare una domanda soggettiva, ma sono sicuro che ci sono buone tecniche che alcuni di voi impiegano per garantire che le importazioni nei progetti Django rimangano mantenibili. Sono abituato ad avere un elenco di circa 30 diverse importazioni in ogni file, e questo viola chiaramente il principio DRY. Quindi non si tratta solo di estetica, si tratta anche di non duplicare il codice.Come mantenere le importazioni ordinate in Django?
Sto cercando un metodo che maneggi le sezioni di importazione nei file Django. Quello che mi sembra una buona idea è avere un file di importazione generico per ogni tipo di file (viste, modelli, ecc.), Che viene poi importato in alto, con ulteriori importazioni specifiche per l'applicazione. Ma questo causerebbe un sovraccarico inutile? Come dovrebbero apparire quei file e quali sono le classi importanti per ogni tipo di file?
Aggiornamento
Su richiesta, ecco un esempio da uno dei miei file 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
che, come si può vedere, è solo davvero disordinato, dal momento che solo aggiungere al fondo della lista ogni volta che ho bisogno di qualcosa nel file. Mantenerlo in ordine alfabetico sarebbe ovviamente d'aiuto, ma ci deve essere un modo migliore per generalizzare rispetto a quello che sto facendo ora.
Vale la pena rompere la linea guida dello stile di non utilizzare l'importazione *
per motivi di sezioni di importazione più brevi e più manutenibili nel file effettivo?
Suppongo che sia possibile mantenere la lista di importazione breve semplicemente importando 'django', ma ciò comporterebbe solo una quantità ridicola di digitazione e richiamo dalla memoria nel resto del file –
Grande domanda. Potete per favore incollare un esempio di codice concreto? –