2009-04-18 8 views
7

Cela peut sembler trivial, mais j'aimerais savoir où je suis supposé mettre mes classes de python (pas de Model)? Je veux dire, mes classes de modèle sont définies dans myapp/models.py mais je veux, par exemple, utiliser une structure de flux de syndication pour écrire un flux simple. The doc dit que j'ai besoin d'écrire une classe de flux mais ... Où devrais-je mettre le code? Quel chemin et fichier? Je voudrais m'en tenir à la structure de répertoire Django par défaut.Quel est le meilleur endroit pour les classes python dans un projet Django?

Merci!

Répondre

8

Vous êtes libre de le mettre où vous voulez.

exemple:

project 
    myapp 
    views.py 
    models.py 
    feeds.py 

Ensuite, vous pouvez vous importer êtes feeds module en utilisant l'importation.

de project.myapp.feeds import *

répertoire Faire est meilleur lorsque vous traitez avec beaucoup de fichier. Par exemple:

project 
    myapp 
     models.py 
     views.py 
     extras 
     feeds.py 
     sitemaps.py 

Je vous suggère de lire ceci: Python Modules: Packages

+0

Alors ... il n'y a pas de convention Django pour ça? Si j'ai plusieurs classes, devrais-je créer un dossier "classes" sous myapp dir? Merci! –

+2

Je ne suggère pas, cela fait beaucoup de confusion. est plus propre à avoir ceci: project.myapp.feeds que project.myapp.classed.feeds Finalement, vous pouvez le faire: project.myapp.extras.feeds projet monapp extras feed –

+0

J'ai mis à jour ma réponse. –

2

Pour les classes relatives aux aliments, il est classique de les placer dans un module appelé feeds dans le module d'application approprié. Par exemple, si vous avez un blog avec un flux RSS, la structure de votre projet ressemblerait à ceci:

project/ 
    blog/ 
     __init__.py 
     feeds.py 
     models.py 
     views.py 

En générale, pour les autres classes non-modèle, vous pouvez les mettre où vous voulez (comme indiqué par Andrea Di Persio). Généralement, vous les placez en tant que module dans le package d'application approprié. Pour les classes générales d'utilisation, je crée habituellement un paquet appelé lib qui contient des classes et fonctions générales, comme ceci:

project/ 
    blog/ 
     __init__.py 
     feeds.py 
     models.py 
     other_stuff.py 
     views.py 
    lib/ 
     __init__.py 
     things.py 
+0

Merci pour les conseils! –

0
Models.py 

est un meilleur endroit pour vos clas beacuse modèles ont assesentory aux données (dans la base de données

Questions connexes