Który z tych dwóch frameworków jest bardziej odpowiedni dla programisty z 11-miesięcznym doświadczeniem. Zdecydowałem się nauczyć Pythona do kodowania po stronie serwera i chciałem wiedzieć, które z nich byłyby bardziej odpowiednie dla kogoś na moim poziomie umiejętności. Właśnie spędziłem kilka dni bawiąc się z web2py i bardzo mi się to podoba i zastanawiam się, czy Django oferuje coś więcej, czego mi brakuje?
PS. AKTUALIZACJA: Dziękuję wszystkim za wspaniały wkład, po zakupie trzech książek django i przejrzeniu kilku małych projektów / tutoriali zarówno dla django, jak i web2py, zdecydowałem się na web2py. To wspaniały framework, który sprawia, że tworzenie stron internetowych jest naprawdę zabawne dla początkujących. Poleciłbym wszystkim początkującym, aby nauczyli się tego frameworka, ponieważ w przyszłości będzie on głównym nurtem. Django jest również wspaniałym frameworkiem, ale moim ograniczonym doświadczeniem jest po prostu web2py.
Odpowiedzi:
(zastrzeżenie: jestem liderem projektu dla web2py)
Django jest około 5 lat dłuższe niż web2py, dlatego ma więcej użytkowników i więcej aplikacji, którymi można się pochwalić. Django ma to, co nazywają „admin”, co nie jest tym samym, co „admin” web2py, ale bardziej przypomina „appadmin” web2py. "Admin" Django jest lepszy i bardziej konfigurowalny niż "appadmin" web2py. Django nie ma odpowiednika "admin" web2py. (przepraszam za zamieszanie w nazwie).
Platforma web2py jest bardziej kompaktowa i ma większą funkcjonalność po wyjęciu z pudełka (więcej obsługiwanych baz danych, internetowe IDE, system biletowy, działa na GAE bez poprawek, wiele metod logowania, kontrola dostępu oparta na rolach, internetowy interfejs tłumaczenia, obsługa wielu połączeń z bazami danych, transakcje rozproszone i nie tylko).
Dla mnie najważniejszą funkcjonalnością web2py są automatyczne migracje. Django nie dostarcza ich po wyjęciu z pudełka.
Dla web2py głównym celem jest długoterminowa kompatybilność wsteczna, wraz z bezpieczeństwem. Django jest porównywalne z web2py pod względem bezpieczeństwa (z wyjątkiem tego, że web2py miało zapobieganie CSRF i domyślne ucieczki w szablonach, zanim to zrobiły), ale Django złamał kompatybilność wsteczną, gdy wydano 1.0. Platforma web2py nigdy nie działała od października 2007.
Dla mnie składnia web2py jest bardziej naturalna:
db(db.tablename.fieldname <= value).select() # web2py Tablename.objects.filter(fieldname__lt=value) # Django
Nie znam żadnej funkcjonalności web2py, której nie ma w Django. Zadawałem to pytanie wiele razy, ponieważ jeśli istnieje, to chcemy je dodać do web2py, ale nie otrzymałem jeszcze satysfakcjonującej odpowiedzi.
Oczywiście są rzeczy, które oboje robimy, ale inaczej. Django przestrzega zasady „wyraźne jest lepsze niż niejawne”. Platforma web2py nie działa i zamiast tego postępuje zgodnie z zasadą „wszystko powinno mieć domyślne zachowanie”. Uważam, że dzięki temu kod i konfiguracja web2py są bardziej zwarte.
W każdym razie, cokolwiek wybierzesz, są to dobre, solidne frameworki internetowe i jest mniej podobieństw niż różnic. Programiści Django to bardzo sprytni ludzie.
Społeczność web2py jest bardzo przyjazna. W ramach eksperymentu spróbuj zadać pytanie w grupie google web2py oraz w grupie Django.
źródło
db(db.tablename.fieldname <= value).select()
"), ponieważ nie wygląda on jak Python (część w nawiasach nie jest przypisywaniem wartości do jednego z parametrów, a jedynie przekazywanieTrue
/False
). Czy jest to standard dla web2py, czy też kod, który podałeś jest uproszczoną wersją prawdziwego kodu web2py? Może część w nawiasach powinna być ujęta w cudzysłów? Proszę wytłumacz.Zarówno Django, jak i web2py to doskonałe frameworki internetowe typu „full stack” z podobnymi funkcjami i możliwościami - nie przegapisz żadnego z nich jako początkujący.
Trudno odpowiedzieć na twoje pytanie, nie wiedząc więcej o tym, co chcesz zrobić ze swoją nauką. Niektórzy powiedzieliby, że istnieje niebezpieczeństwo nauczenia się frameworka, a nie języka, więc najlepiej byłoby lepiej poznać język Python i lżejsze frameworki (np. Flask lub wekzeug najpierw ).
Mimo to web2py ma niższą początkową krzywą uczenia się niż Django, ponieważ został specjalnie zaprojektowany jako narzędzie do nauki . Więc powiedziałbym, że dokonałeś dobrego wyboru. Żadna nauka nie zostanie zmarnowana, a jeśli zdecydujesz, że potrzebujesz czegoś innego w przyszłości, dobre techniki, których nauczyłeś się przy użyciu web2py, nie pójdą na marne.
Chociaż istnieje więcej zasobów edukacyjnych dla Django, ponieważ istnieje już dłużej i ma więcej użytkowników, nauka web2py jest również szybka dzięki doskonałej książce i niemal natychmiastowym odpowiedziom na pytania grupy użytkowników .
Jeśli szukasz pracy, jest więcej ofert pracy w Django, więc może to mieć znaczenie. Powiedziawszy to, społeczność web2py niedawno utworzyła expert4solutions, gdzie możesz promować swoje umiejętności i dostępność w przyszłości.
Baw się dobrze!
źródło
Jestem kompletnym noobem z Web2py i DJango, ale potrzebowałem frameworka internetowego, który byłby w Pythonie do zabawy, uczenia się i tworzenia interfejsu dla prostej bazy danych. Spojrzałem na web2py, ale nie mogłem znaleźć żadnych przyzwoitych samouczków, skierowanych do zupełnie początkujących, kiedy zainstalowałem web2py, co było bardzo łatwe, nie wiedziałem, co robić dalej, wydawało się, że nie ma samouczków, które by mnie prowadziły jak zbudować prostą aplikację internetową (nie tylko witaj świecie). Z drugiej strony, DJango napisał pierwszą aplikację DJango, część 1 . To było naprawdę dobre, dając początkującym wprowadzenie do konfiguracji i korzystania z frameworka, pisząc prostą aplikację internetową. Dopóki Web2Py tego nie zaoferuje, mój głos trafia do DJango.
źródło
W wielu słowach: (jak zrozumiałem)
Web2py jest zdecydowanie łatwiejsze i sprawia, że kod jest prostszy i bardziej przejrzysty. Ale Django daje lepsze zrozumienie tego, co się dzieje, a także więcej możliwości modyfikowania projektu / procesu.
Web2py skupia się bardziej na „prostym jest lepszym niż złożonym”, ale Django bardziej skupia się na „jawnym jest lepszym niż niejawnym”. Dwie części The Zen of Python, więc bardzo trudno powiedzieć, który framework jest bardziej Pythonic.
źródło