Modification des contrôleurs modèle pour les nouveaux Pylônes
Question
Je suis à un moment dans mes projets Pylônes où je finis par la création et la suppression des contrôleurs souvent (probablement plus souvent que je devrais). Je se lassent d'ajouter mes propres importations et quelques réglages au sommet de chaque contrôleur. Il y avait une question récente sur la modification du nouveau modèle de contrôleur qui m'a fait à mi-chemin de ne pas avoir à le faire - mais je ne comprends pas comment le fichier est utilisé par controller.py_tmpl Paster, et comment je peux dire Paster, par un projet existant, « hey, l'utilisation cette modèle à la place! "
Quelle invocation dois-je dire Paster utiliser mon modèle au lieu de celui par défaut?
La solution
Pylônes crée de nouveaux contrôleurs et des projets en ajoutant la commande à coller. Les commandes sont définies dans setup.py et vous pouvez ajouter de nouvelles commandes.
Par exemple (ce qui est tirée de la pâte docs ) permet de supposer que vous avez un projet appelé foo qui est dans un package aussi appelé foo.
Dans setup.py add 'foo' à la liste '' paster_plugins Puis ajouter une nouvelle commande à entry_points.
à savoir entry_points = "" » [Paste.paster_command] mycommand = foo.commands.test_command: Test "" "
Créer un répertoire nommé « commandes » sous « foo », ajoutez un fichier de __init.py__ et de créer un fichier appelé test_command.py
Dans le fichier add
from paste.script import command
class TestCommand(command.Command):
max_args = 1
min_args = 1
usage = "NAME"
summary = "Say hello!"
group_name = "My Package Name"
parser = command.Command.standard_parser(verbose=True)
parser.add_option('--goodbye',
action='store_true',
dest='goodbye',
help="Say 'Goodbye' instead")
def command(self):
name = self.args[0]
if self.verbose:
print "Got name: %r" % name
if self.options.goodbye:
print "Goodbye", name
else:
print "Hello", name
Après avoir exécuté « python setup.py développer », vous pouvez maintenant lancer « coller mycommand bob » et vous devriez obtenir « bob Bonjour » sortie.
Pour voir comment Pylônes ajoute à cela pour créer de nouveaux fichiers, etc. regarder dans Pylônes / commands.py ils ont des commandes pour créer de nouveaux contrôleurs et RestControllers que vous pouvez copier.