Pourquoi utiliser Django sur Google App Engine?
Lors de la recherche de Google App Engine (GAE), il est clair que l'utilisation de Django est très populaire pour le développement en Python sur GAE. J'ai été à récurer le web pour trouver de l'information sur les coûts et les avantages de l'utilisation de Django, à savoir pourquoi il est si populaire. Alors que j'ai été en mesure de trouver une grande variété de sources sur comment pour exécuter Django à la FGA et les différentes méthodes pour le faire, je n'ai pas trouvé d'analyse comparative sur pourquoi Django est préférable à l'utilisation de la webapp cadre fourni par Google.
Pour être clair, il est immédiatement évident que l'utilisation de Django à la FGA est utile pour les développeurs avec un niveau de compétences dans Django (une majorité de Python développeurs web, sans aucun doute) ou code existant dans Django (où à l'aide de GAE est plus un portage de l'exercice). Mon équipe, cependant, est l'évaluation GAE pour une utilisation sur un tout nouveau projet et de notre expérience est à TurboGears, pas de Django.
Il est assez difficile de déterminer pourquoi Django est bénéfique pour une équipe de développement lors de la BigTable bibliothèques ont remplacé l'ORM de Django, des séances et l'authentification sont nécessairement changé, et Django template (si cela est souhaitable) est disponible sans l'aide de l'ensemble de Django pile.
Enfin, il est clair que l'utilisation de Django n'ont l'avantage de fournir une "stratégie de sortie" si plus tard, nous avons voulu éloigner de la FGA et de la nécessité d'une plate-forme de la cible de l'exode.
Je serais extrêmement reconnaissante de l'aide en pointant pourquoi à l'aide de Django est mieux que d'utiliser la webapp sur GAE. Je suis aussi totalement inexpérimentés avec Django, donc l'élaboration d'entités plus petites et/ou des convenances que le travail sur GAE sont également précieuses pour moi.
- holy crap terry bradshaw écrit le code?
- Django est bénéfique, car il est génial. C'est vraiment elle. 🙂
- Je suis nouveau sur le Google app engine aussi bien et c'est très bien formé question, même pour 2018(bien que l'ORM de Django, il semble beaucoup mieux pris en charge sur GAE maintenant). 🙂
Vous devez vous connecter pour publier un commentaire.
Nous utilisons django sur notre appengine cas la plupart du temps quand nous avons de servir réel les sites web de l'utilisateur. Il a un grand moteur de template, le routage d'url et tous les de requête/réponse/gestion des erreurs construit en. Donc, même si nous ne pouvons pas utiliser la magie orm/admin choses, il a beaucoup de choses pour elle.
Pour les api de services, nous avons construit quelque chose de très simple sur le dessus de
webob
. Il est beaucoup plus léger car il n'a pas besoin de tout ce que django offre, et donc un peu plus rapide dans certaines situations.Django n'est probablement pas le bon choix pour vous, si vous êtes sûr que GAE est bon pour vous. Les points forts de ces deux technologies ne s'alignent pas très bien qui vous fait perdre beaucoup de Django est merveilleux orm sur GAE, et si vous ne l'utilisez, vous écrivez du code qui n'est pas vraiment directement adapté de bigtable et la façon GAE œuvres.
La chose à propos de GAE est que c'est de la grande évolutivité en vous forçant à écrire du code qui s'adapte facilement à partir de la base. Vous ne pouvez pas faire un certain nombre de choses que l'échelle de mal (bien sûr, vous pouvez toujours écrire mal de mise à l'échelle de code, mais vous éviter quelques pièges). Le compromis est que vous avez vraiment en fin de codage dans le cadre, si vous utilisez quelque chose comme Django, qui est conçu pour un environnement différent.
Si vous voyez-vous jamais quitter GAE pour une raison quelconque, devenant investi dans les infrastructures, il est un problème pour vous. Le codage de bigtable signifie qu'il sera plus difficile de passer à une architecture différente (bien que le projet apache travaille à résoudre pour vous avec la HBase composante du projet Hadoop). Il serait encore beaucoup de travail à la transition hors de la FGA.
Ce qui est de la conduite de motivation derrière l'utilisation de GAE, en plus d'être un produit de Google, et un bon mot à la mode? Est-il une raison que mise à l'échelle en utilisant quelque chose comme mediatemple l'offre est peu probable de travailler bien pour vous? Êtes-vous sûr que les moyens que GAE échelles sont les plus appropriés pour votre application? Quel est le coût de comparer sur des serveurs dédiés, si vous attendez pour obtenir des performances royaume? Pouvez-vous résoudre votre problème à l'aide des outils GAE offre, par rapport à une approche plus traditionnelle à charge équilibrée de configuration du serveur d'?
Tout cela dit, sauf si vous avez absolument, positivement besoin de la ligne de démarcation-ridicule mise à l'échelle de GAE offre, je serais personnellement vous conseillons de ne pas laisser ce service en particulier de la structure de votre choix de cadre. J'aime Django, donc je dirais que vous devriez l'utiliser, mais pas sur GAE.
Édition (Juin 2010):
Une mise à jour de ce commentaire un peu plus tard:
Google a annoncé sql-like capabilitys de GAE qui ne sont pas gratuit, mais vous pouvez facilement faire des choses comme de l'exécution de SQL commandes de style pour générer des rapports sur vos données.
En outre, il y a des changements à venir à la FGA langage de requête qui permettra de requêtes complexes dans une beaucoup plus facile de mode. Regardez les vidéos de Google I/O 2010.
En outre, il y a du travail fait au cours de la Summer of Code 2010 projet qui devrait apporter pas-sql soutien à django de base, et, par extension, de rendre le travail avec GAE nettement plus facile.
GAE est de plus en plus attrayant en tant que plate-forme d'hébergement.
Édition (Août 2011):
Et Google vient de soulever le coût de la plupart des utilisateurs de la plate-forme de manière significative par la modification de la structure de prix. Les faire adopter problème s'est mieux (si votre demande est assez grande, vous pouvez déployer l'apache alternatives), mais pour la plupart des applications, de serveurs ou de VPS déploiements est moins cher.
Très peu de gens ont vraiment bigdata problèmes. "Oh mon démarrage pourrait échelle d'un jour" n'est pas un bigdata problème. Construire des trucs maintenant et obtenez la porte en utilisant les outils standard.
J'ai fait beaucoup de projets sur GAE. Certains dans django, certains dans leur cadre normal.
Pour les petites choses, j'ai l'habitude d'utiliser leur cadre normal pour des raisons de simplicité et de rapidité. Comme http://stdicon.com, http://yaml-online-parser.appspot.com/, ou http://text-twist.appspot.com/.
Pour les grandes choses, je aller avec django pour profiter de toutes les belles middleware et les plugins. Comme http://metaward.com.
Fondamentalement, mon test décisif est Sera-ce de me prendre plus de 2 semaines pour écrire et être un RÉEL projet de logiciel? Si oui, allez-y avec django pour les addons.
Il a l'avantage d', si votre projet est mal adaptée pour BigTable, alors vous rapidement de port off (comme je l'ai fait Est BigTable lente ou suis-je stupide?)
Je pense que toutes ces réponses sont un peu obsolètes.
Maintenant, vous pouvez utiliser
Google Cloud SQL
https://cloud.google.com/python/django/appengine
un plus fraîche nouvelle, c'est qu'il y est une version BÊTA de soutien pour PostgreSQL
J'ai de l'expérience à l'aide de Django et de ne pas GAE. De mes expériences avec Django, il a été un des plus simplistes, la configuration et le processus de déploiement a été incroyablement facile en termes de projets web. Certes, j'ai dû apprendre Python pour vraiment avoir une bonne tenue sur les choses, mais à la fin de la journée, je l'utiliserais à nouveau sur un projet. C'était presque 2 ans avant d'atteindre 1.0 j'ai donc mes connaissances sont un peu dépassées.
Si vous êtes inquiet au sujet de la modification des plates-formes, alors ce serait un meilleur choix, je suppose.
Je ne peux pas répondre à la question, mais vous voudrez peut-être chercher dans web2py. Il est semblable à Django à de nombreux égards, mais sa couche d'abstraction de base de travaux sur GAE et prend en charge la plupart de la GAE fonctionnalités (pas tous, mais nous essayons de rattraper). De cette façon, si GAE fonctionne pour vous beaucoup, si elle n'est pas, vous pouvez déplacer votre code à une autre db (SQLite, MySQL, PostgreSQL, Oracle, MSSQL, FireBird, DB2, Informix, Ingres, et - bientôt - Sybase et MongoDB).
Si vous décidez d'exécuter votre application en dehors de la FGA, vous pouvez toujours utiliser Django. Vous n'aurez pas vraiment eu beaucoup de chance avec le GAE webapp
Je suis encore très nouveau pour Google App engine développement, mais les interfaces Django fournit à faire apparaître beaucoup plus agréable que celui par défaut. Les avantages dépendra de ce que vous utilisez pour exécuter Django sur l'app engine. Le Google App Engine aide pour Django vous permet d'utiliser toute la puissance de Google App Engine avec certains Django fonctionnalité sur le côté.
Django non-rel efforce de fournir autant de Django est possible, mais en cours d'exécution sur l'app-moteur pour d'éventuels extra évolutivité. En particulier, il comprend Django modèles (l'un de Django fonctionnalités de base), mais c'est une abstraction qui fuit en raison des différences entre les bases de données relationnelles et bigtable. Il y aura probablement des différences de fonctionnalité et d'efficacité, ainsi qu'une augmentation du nombre de bugs et de bizarreries. Bien sûr, cela pourrait être utile dans des circonstances telles que celles décrites dans la question, mais sinon recommandons fortement d'utiliser l'aide au début, car ensuite, vous avez la possibilité d'aller en direction soit de la pure app-moteur ou Django non-rel plus tard. Aussi, si vous ne passer à Django non-rel, votre augmentation de la connaissance de la façon dont app engine œuvres seront utiles si l'Django abstraction jamais de pauses - certainement beaucoup plus utile que la connaissance des bizarreries/solutions de contournement pour Django non-rel si vous permutez l'autre sens.