ccnmtldjango

Logiciel capture d'écran:
ccnmtldjango
Détails logiciels:
Version: 1.2.0
Date de transfert: 20 Feb 15
Développeur: Anders Pearson
Licence: Gratuit
Popularité: 4

Rating: 1.0/5 (Total Votes: 1)

ccnmtldjango est un modèle de pâte que nous utilisons pour remplacer la commande de django-admin.py startproject standard.
Il fait la même tâche fondamentale de mettre en place une structure de répertoires pour une application Django, mais il a été étendu à mettre en œuvre un grand nombre de fonctionnalités spécifiques de CCNMTL et la configuration.
Ce qu'il procure pour nous que startproject ne fait pas:
- Django Vent (un pont Django au service d'authentification central Britannique - http://www.jasig.org/cas/deployments/columbia-university) est inclus et configuré par défaut afin que nos applications peuvent utiliser le vent pour auth automatiquement. Ce est à dire, ne importe qui avec un Britannique UNI par défaut aura un compte. Les UNIs développeur CCNMTL sont automatiquement configurés comme super-utilisateurs, et l'affil de groupe que le personnel CCNMTL tous ont est automatiquement mappé au personnel. Ce sont des valeurs par défaut généralement utiles pour nous.
- Virtualenv et la configuration pip avec archives sources groupés et bootstrappable, le tralala de manage.py mis à l'utiliser. Cela correspond essentiellement dans notre une étape automatisée déploiement et confinement approche.
- Sorl.thumbnail (une bibliothèque de thumbnailing d'image élégant pratique) est inclus par défaut
- Flatpages permis
- Réglages séparés pour les dev / prod
- Apache / django.wsgi configuré
- Un exemple Apache config pour la configuration de mod_wsgi utilisation des environnements virtuels (tout est simplifié afin que nous puissions simplement un lien symbolique du fichier de configuration d'Apache généré dans de notre serveur de production / etc / apache / sites-enabled / répertoire et il est bon d'aller)
- Dirs de médias pour dev et prod configurés
- Smartif inclus (https://github.com/thraxil/django-smartif/tree/master)
- Template_utils inclus (http://code.google.com/p/django-template-utils/) ainsi que feedparser, dont il dépend pour l'alimentation des trucs
- Django-typogrify inclus (http://code.google.com/p/typogrify/) avec smartypants.py (qu'il utilise)
- Django-sentinelle inclus (https://github.com/dcramer/django-sentry) et configuré pour notre configuration
- Django-munin inclus (https://github.com/ccnmtl/django-munin)
- Sud est incluse pour les migrations de bases de données
- Django-gênant est inclus (Je aimerender_to)
- Django-nez installé et configuré comme lanceur de test (beaucoup mieux!)
- Sqlite en mémoire base de données utilisée pour les tests unitaires
- Tests de sud saute automatiquement sur le test ./manage.py (ils cassent)
- Django_compressor ajouté et mis en place pour compresser css sur la production
- Uuid.py
- Jquery (1.4.2, minified) inclus
- hs.js
- tabber.js
- widget.js
- tablesort.js
- CSS requis pour les bibliothèques js ci-dessus est incluse dans le site.css par défaut
- Modèles de base inclus
- Django administrateur permis (et authentifié avec WIND pour CCM)
- Restclient
- Httplib2
- Imageuploader
- Démarquage est inclus et activé
- Base de données par défaut à PostgreSQL (cause MySQL est teh sucer)
- Transaction middleware activée par défaut (la corruption des données sur les causes est teh sucer)
- Jeu de fuseau horaire
- I18n éteint (nous sommes malheureusement monolingue aucun sens à nier.)
- PIL
- Psycopg2 (dépouillé de sa dépendance mx.DateTime)
- Une belle conception de modèle par défaut avec des modèles de base de rechange pour multi-colonnes.
Pour utiliser ccnmtldjango, vous devez python 2.6+, virtualenv, pépins et une récente setuptools installés sur votre machine.
Premièrement, si vous ne avez pas déjà installé ccnmtldjango, faire
& Nbsp; easy_install ccnmtldjango
Il devrait se retirer automatiquement les dépendances nécessaires (juste PasteScript, en fait).
Running
& Nbsp; paster créer --list-modèles
devrait inclure ccnmtldjango
Maintenant, pour démarrer rapidement un projet de django, faire
& Nbsp; paster créer --template = ccnmtldjango myprojectname
myprojectname devrait être un nom de module python (c.-à-minuscules, pas de ponctuation, etc). Il va créer un répertoire appelé myprojectname qui a un projet django en elle.
paster ne toujours pas faire ne importe quoi avec les permissions de fichiers, donc nous avons encore besoin de régler manuellement un couple:
& Nbsp; cd myprojectname
& Nbsp; chmod 755 bootstrap.py manage.py
Je ne pouvais pas trouver un moyen pour insérer des chaînes aléatoires dans le code via Coller modèle, donc une chose qui est ccnmtldjango manquant par rapport à un startproject django régulière est que la variable de secret_key dans settings_shared.py est toujours le même défaut. Ce ne est clairement pas une bonne idée, alors assurez-vous que vous changez à une autre chaîne aléatoire qui sera unique à votre projet.
Ce est probablement un bon point pour vérifier le projet dans le contrôle de version.
Nous utilisons confinement pour django aussi, avec virtualenv:
& Nbsp; ./ bootstrap.py
Cela va créer un répertoire ve qui contient une virtualenv et a eu toutes les bibliothèques dans le répertoire exigences / src installé en elle (ce qui inclut django lui-même). Le ve répertoire ne doit jamais être vérifiée dans le svn car il est généré. Si vous avez besoin d'autres bibliothèques pour votre application, les regrouper en archives et de les déposer dans le exigences / src / répertoire, ajoutez-les aux besoins / exigences libs.txt ou / apps.txt (selon qu'ils sont des bibliothèques python réguliers ou django applications) puis ré-exécuter ./bootstrap.py.
Gardez à l'esprit que, avec virtualenv, il ne est pas nécessaire pour activer un environnement. Au lieu de cela, un cinq a un répertoire bin qui contient un exécutable python. Si vous utilisez qu'au lieu de l'exécutable python du système, il utilise les bibliothèques dans ce virtualenv.
ccnmtldjango suppose que votre projet va utiliser une base de données PostgreSQL avec le même nom que votre projet. Donc, pour notre exemple, vous voudriez faire:
& Nbsp; createdb myprojectname
et il est prêt à l'utiliser:
& Nbsp; ./ manage.py syncdb
va installer les tables que Django besoins pour ses applications communes (sites, sessions, admin, flatpages, etc) et avez-vous créer un utilisateur administrateur.
Le syncdb ./manage.py définit automagiquement en place un "example.com" site. Cela devrait être modifié à votre domaine de site (par exemple localhost: 8000) via la console d'administration. http: // localhost: 8000 / admin / sites / place /. (Si ce est important pour votre application)
Votre application est prête à fonctionner maintenant:
& Nbsp; ./ manage.py runserver
va commencer un serveur sur http: // localhost: 8000 /. Going il vous donnera une 404 car il n'y a rien dans l'application encore, mais l'application d'administration devraient être accessibles (via le compte d'utilisateur que vous avez créé au cours syncdb, ou par le vent aux utilisateurs CCM (ou ceux spécifiés dans la liste WIND_SUPERUSER_MAPPER_GROUPS dans settings_shared.py .) Alors allez-y et connectez-vous à l'adresse http: // localhost: 8000 / admin /
Même sans code spécifique à l'application, flatpages est inclus afin que vous pouvez mettre du contenu sur le web tout de suite.
De ce point sur, ce est le développement de base de Django. Vous aurez probablement envie de faire un startapp ./manage.py pour créer votre propre application dans le projet et ainsi de suite.
Mise en place d'une extraction
La première fois que vous consultez un projet ccnmtl-modèle existant dans svn / git:
& Nbsp; ./ bootstrap.py
./manage.py runserver :
Différences d'un Django d'installation standard
De toute évidence, un tas de bibliothèques et tels ont été ajoutées et il ya le tout de virtualenv. Il ya aussi quelques différences d'un projet de django standard (ce est à dire, le résultat de django-admin.py startproject) que vous devriez être des awayre.
Tout d'abord, les paramètres ont été divisées en place pour faire dev et prod déploiements plus facile à configurer. Un django installation habituelle aura un fichier settings.py qui contient tous les paramètres. Développeurs de Django habituellement copier ce fichier de paramètres et effectuer des modifications lors du déploiement à la production. ccnmtldjango profite du fait que les paramètres sont code python juste et peuvent être importés et écrasés. Nous avons donc un settings_shared.py qui contient la plupart des paramètres. settings.py (qui devrait être utilisé pour le développement) et settings_production.py puis importer tout, de partir settings_shared.py. settings_production.py puis remplace également les paramètres qui devraient être différente dans le déploiement de production (généralement des chemins vers des modèles et des fichiers multimédias).
TransactionMiddleware est activée par défaut. Cela signifie que chaque requête HTTP obtient une transaction qui valide ou annule à la fin de la demande. La configuration par défaut de Django pour une raison quelconque fait des choses style «validation automatique» où chaque opération de base de données fonctionne dans sa propre transaction, indépendante de la requête HTTP.
L'autre grande différence pour prendre en compte est le répertoire des modèles de haut niveau. Procédure de django norme est d'avoir un répertoire de modèles dans chaque application dans votre projet qui contient les modèles pour cette application. ccnmtldjango a le répertoire des modèles de haut niveau pour plusieurs raisons. Premièrement, étant donné paster crée uniquement le répertoire au niveau du projet et non pas les répertoires d'applications, ce était la seule façon de faire inclure une base.html par défaut, admin / login.html, enregistrement / login.html et ainsi de suite. Je ai aussi tout comme l'approche d'avoir un répertoire des modèles au niveau du projet, en particulier pour le modèle de base.html. Django permet à plusieurs répertoires et recherches modèle à travers eux dans un ordre prévisible, de sorte que vous pouvez (et devrait probablement) toujours créer les répertoires de modèle au niveau des applications, lister dans TEMPLATE_DIRS avance sur le niveau d'un projet, et de remplacer tout les modèles que vous voulez dans ceux-ci.
I18N est éteint car il est assez rare que nous faisons des choses multilingue et ce est une baisse de performance de l'avoir activé se il ne est pas utilisé. . Si vous avez besoin de faire un site django multilingue, juste le réactiver et se rendre au travail

Exigences :

  • Python

Commentaires à ccnmtldjango

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!