Baňky vs webapp2 na Google App Engine

hlasů
107

Začínám novou aplikaci Google App Engine a v současné době zvažuje dvě kostry: baňky a webapp2 . Jsem s poměrně spokojen vestavěným rámci WebAPP, že jsem použil pro svou předchozí žádosti App Engine, takže myslím, že webapp2 bude ještě lepší a já nebudu mít žádné problémy s ním.

Nicméně, existuje mnoho dobrých recenzí baňky, jsem opravdu rád svůj přístup a všechny věci, které jsem doposud v dokumentaci číst a já chci, aby to vyzkoušet. Ale já jsem trochu obavy o omezeních, že mohu lícem dolů na silnici s baňky.

Takže otázka zní - Znáte nějaké problémy, problémy s výkonem, omezení (např směrovací systém, zabudovaný systém povolení, atd), které Baňka by mohla přinést do aplikace Google App Engine? Pod pojmem „problém“ mám na mysli něco, co nelze obejít v několika řádků kódu (nebo nějakém rozumném množství kódu a úsilí), nebo něco, co je naprosto nemožné.

A jako navazující otázku: Existují nějaké killer-funkce v baňce, která si myslíte, že může vyhodit svou mysl, a abych ji použít i přes všechny problémy, které mohu čelit?

Položena 21/07/2011 v 11:03
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
12

Vaše otázka je velmi široká, ale zdá se, že žádné velké problémy s použitím baňky na Google App Engine.

Tento poštovní seznam závitové spojení na několika šablon:

http://flask.pocoo.org/mailinglist/archive/2011/3/27/google-app-engine/#4f95bab1627a24922c60ad1d0a0a8e44

A tady je návod specifický pro kombinaci motoru baňka / App:

http://www.franciscosouza.com/2010/08/flying-with-flask-on-google-app-engine/

Také viz App Engine - Obtížnost Přístup Twitter data - baňky , baňky zprávu blikání selže po přesměrování a jak mohu řídit Python knihoven třetích stran s Google App Engine? (VIRTUALENV? pip?) pro otázky lidé měli s baňky a Google App Engine.

Odpovězeno 21/07/2011 v 12:09
zdroj uživatelem

hlasů
135

Prohlášení: Jsem autorem tipfy a webapp2.

Velkou výhodou držet s webapp (nebo jeho přirozeného vývoje, webapp2) je, že nemusíte vytvářet své vlastní verze pro stávající SDK manipulátory pro rámci svého výběru.

Například odložené používá ovladač webapp. Pokud jej chcete použít v čisté baňky zobrazení pomocí werkzeug.Request a werkzeug.Response, budete muset implementovat odkládá na ni (stejně jako já tady pro tipfy).

To samé se děje u ostatních manipulátory: blob (Werkzeug stále nepodporuje požadavky na rozsah, takže budete muset použít WebOb i když si vytvořit svůj vlastní handler - viz tipfy.appengine.blobstore ), poštu, XMPP a tak dále, nebo jiné, které jsou zahrnuty v SDK v budoucnosti.

A totéž se děje z knihoven vytvořených App Engine v mysli, jako ProtoRPC , který je založen na webapp a bude potřebovat port nebo adaptér pro práci s jinými rámců, pokud nechcete míchat webapp a vaše-framework-of- výběr manipulátory ve stejné aplikaci.

Takže, i když zvolíte jiný rámec, budete skončit a) za použití webapp v některých zvláštních případech, nebo b) by bylo třeba vytvářet a udržovat své verze pro konkrétní SDK manipulátory nebo funkce, pokud je budete používat.

Já raději Werkzeug přes WebOb, ale po více než jeden rok portování a udržování verze SDK manipulátory, které pracují nativně s tipfy, jsem si uvědomil, že je to ztracený případ - podporovat GAE dlouhodobě, nejlepší je zůstat blízko webapp / WebOb. To dělá podporu SDK knihovny vánek, údržba se stává mnohem jednodušší, to je více do budoucnosti i nové knihovny a SDK funkce bude fungovat po vybalení z krabice a tam je výhoda rozsáhlou komunitou pracující kolem stejnými nástroji App Engine.

Konkrétní webapp2 obrana jsou shrnuty zde . Přidat k těm, které webapp2 mohou být použity mimo App Engine a je snadno přizpůsobit tak, aby vypadal jako populární mikro-rámce a máte dobrou sadu přesvědčivé důvody jít na to. Také webapp2 má velkou šanci být zahrnuty do budoucí verzi SDK (to je extra-úředník, ne citovat mě :-), která bude tlačit dopředu a přinést nové vývojáře a příspěvky.

To znamená, že jsem velký fanoušek Werkzeug a kluků Pocoo a půjčil hodně z baňky a jiní (web.py, Tornado), ale - a víte, že jsem zaujatý - výše uvedené webapp2 dávky by měly třeba vzít v úvahu.

Odpovězeno 22/07/2011 v 08:07
zdroj uživatelem

hlasů
1

Nesnažil jsem webapp2 a zjistil, že tipfy bylo trochu obtížné používat, protože to vyžadovalo instalačních skriptů a sestavení, které nakonfigurovat instalaci python na jinou hodnotu než výchozí. Z těchto a dalších důvodů jsem ses udělal můj největší projekt závisí na rámce a místo toho jsem použít prostý webapp, přidejte knihovnu s názvem pohár získat schopnost relace a Django již má vestavěný překlady pro slova, které jsou společné mnoha usecases takže při sestavování lokalizované aplikace django byla správná volba pro můj největší projekt. Mezi další 2 rámce Vlastně jsem nasazeny s projekty na produkčním prostředí byly GAEframework.com a Web2py a obecně se zdá, že přidání rámec, který mění své šablony motoru může vést k nekompatibility mezi starými a novými verzemi.

Takže moje zkušenost je, že jsem byl zdráhají přidání rámec pro mé projekty, pokud řešit pokročilejší případy použití (nahrání souboru, multi auth, admin ui jsou 3 příklady pokročilých případů použití, že žádný rámec pro Gae v tuto chvíli zvládá dobře.

Odpovězeno 23/07/2011 v 09:11
zdroj uživatelem

hlasů
2

Myslím, že Google App Engine oficiálně podporuje rámec baňky. K dispozici je ukázkový kód a návod tady -> https://console.developers.google.com/start/appengine?_ga=1.36257892.596387946.1427891855

Odpovězeno 03/04/2015 v 06:09
zdroj uživatelem

hlasů
2

Pro mě je rozhodnutí pro webapp2 bylo jednoduché, když jsem zjistil, že láhev není objektově orientovaný rámec (od začátku), zatímco webapp2 je čistě objektově orientovaný framework. webapp2 používá metoda založená na dispečink jako standard pro všechny RequestHandlers (jako baňka dokumentace to nazývá a realizuje jej od v0.7 v MethodViews). Zatímco v baňce MethodViews jsou doplněk na tom je princip konstrukce jádra pro webapp2. Takže váš software design bude vypadat jinak než za použití obou rámců. Oba rámce používat v dnešní době jinja2 šablony a jsou poměrně mají identické.

I upřednostňují přidat bezpečnostní kontroly na base třídy RequestHandler a dědí z něj. To je také dobré pro užitkové funkce, atd Jak můžete vidět například v odkazu [3] můžete přepsat metody, aby se zabránilo odesláním požadavku.

Pokud jste OO-person, nebo zda je třeba navrhnout REST-server, bych doporučil webapp2 pro vás. Pokud dáváte přednost jednoduché funkce s malíři jako manipulátory pro různé typy žádostí, nebo vám vadí OO-dědictví poté zvolte baňky. Myslím, že oba rámy se zabránilo složitosti a závislostí mnohem větších rámců, jako jsou pyramidy.

  1. http://flask.pocoo.org/docs/0.10/views/#method-based-dispatching
  2. https://webapp-improved.appspot.com/guide/handlers.html
  3. https://webapp-improved.appspot.com/guide/handlers.html#overriding-dispatch
Odpovězeno 06/09/2015 v 16:19
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more