2010-03-10 11 views
5

Planuję napisać usługę sieciową w Pythonie. Ale zauważyłem, że WSGI również robi to samo. Który z nich może być preferowany?Apache2: mod_wsgi lub mod_python, który z nich jest lepszy?

Dziękuję
Bala

Aktualizacja

nadal jestem zdezorientowany. Proszę pomóż.

Lepszy w moim rozumieniu oznacza:
1. Błąd będzie ustalany okresowo.
2. Wybrany przez większość programistów.
3. Dodatkowe funkcje, takie jak tokeny uwierzytelniania, takie jak AWS, mogą być obsługiwane od razu po wyjęciu z pudełka.
4. Brak silnej zależności od wersji. (Widzę, że wsgi wymaga pythona 2.6)
5. Wszystkie biblioteki pythonów będą działać po wyjęciu z pudełka.
6. Skalowalny w przyszłości.
7. Przyszłe uaktualnienie nie powoduje żadnych problemów.

Z moim ograniczonym doświadczeniem, chcę te funkcje. Może być niektórych, których może mi brakować.

Dzięki
Bala

Aktualizacja

przykro mi za całe zamieszanie spowodowane. Po prostu chcę udostępnić spokojne usługi sieciowe w języku Pythona. Czy istnieje dobre ramy?

+0

zależy od tego, co chcesz zrobić, WSGI jest bardzo niski poziom, musisz wybrać framework, aby uruchomić na WSGI, potrzebujesz więcej informacji –

+0

Właściwie po prostu chcę napisać API usługi REST. Obecnie nie martwię się o szybkość, ale w przyszłości mogę się tym zainteresować. – Boolean

+0

1) Określ "lepsze" i "preferowane". Musisz podać kryteria; czego szukasz. Lepiej nie da się tego opisać, nie mówiąc, co jest dla ciebie ważne. (2) Nie dodawaj komentarzy do swoich własnych pytań. Zaktualizuj pytanie, podając informacje o REST. Zadawaj pytanie jasne, kompletne i precyzyjne. Nie dodawaj komentarzy. –

Odpowiedz

14

mod_wsgi jest aktywnie konserwowane i (słyszę - nie porównywałem ich samemu!) Lepsze wyniki niż mod_python. Więc jeśli nie potrzebujesz wyłącznych funkcji mod_python, tylko po to, aby użyć struktury aplikacji internetowej (lub innej niż framework, np. werkzeug ;-), prawdopodobnie lepiej będzie z mod_wsgi! (Prawie każda platforma internetowa Pythona i wiele innych, z których werkzeug jest moim ulubionym, obsługuje WSGI jako standardowy interfejs do serwera WWW).

+5

Uwaga, kiedy Alex mówi "mod_wsgi jest bardziej aktywnie utrzymywany", ma na myśli to, że "ostatnie wydanie mod_python było w 2007 roku". :) Zdecydowanie użyj mod_wsgi, jeśli możesz. –

4

Jeśli chcesz tylko uruchamiać aplikacje internetowe, użyj mod_wsgi. Jeśli potrzebujesz napisać procedurę obsługi dla pozostałych faz żądania/odpowiedzi httpd, użyj mod_python.

+0

Jaka jest różnica pomiędzy dwoma. Chcę tylko udostępnić interfejsy API usług REST. – Boolean

+0

@Algorist Jeśli nie wiesz, że masz specjalne wymagania, które wymagają mod_python, nie _need_ mod_python. W 99% przypadków nie ma powodu, aby używać go w nowym projekcie, chyba że musisz działać na istniejącej platformie zależnej od mod_python. –

+4

mod_wsgi służy do uruchamiania aplikacji internetowych. mod_python służy do rozszerzenia httpd. –

5

Nie mylić tego, co WSGI i mod_wsgi. WSGI to specyfikacja interfejsu do obsługi aplikacji internetowych Python na serwerze. Moduł mod_wsgi jest implementacją specyfikacji WSGI z wykorzystaniem serwera Apache jako bazowego serwera WWW. Tak więc, Python i WSGI nie są dokładnie wyborami, WSGI jest tylko jednym ze sposobów na komunikowanie się pomiędzy usługą/aplikacją Pythona a serwerem sieciowym. Pakiet mod_wsgi jest jedną z implementacji tego interfejsu. Tak więc WSGI jest środkiem do osiągnięcia celu, a nie rozwiązaniem samym w sobie.

Osobiście bardzo bym zasugerował, żebyś używał minimalnego frameworka Pythona/non framework i jak sugeruje Alex, Werkzeug to dobry wybór.

3

mod_wsgi jest specjalnie dostosowany do uruchamiania aplikacji internetowych Python, które używają WSGI w Apache. mod_python jest przeznaczony do wszelkiego rodzaju aplikacji internetowych Python, w tym aplikacji WSGI. mod_wsgi ma również mniejszy ślad pamięci niż mod_python.

0
  1. Błąd będzie ustalany okresowo.

    O ile nie płacisz pieniędzy, nie możesz mieć o tym pojęcia.

  2. Wybrany przez większość programistów.

    mod_wsgi

  3. Dodatkowe funkcje, takie jak tokeny uwierzytelniania, takich jak AWS, mogą być obsługiwane po wyjęciu z pudełka.

    Prawda dla każdej struktury.

  4. Nie silna zależność od wersji. (Widzę, że WSGI wymaga Pythona 2.6)

    Co? Wszystko zależy od kompatybilnych wersji. Wszystko. Każdy pojedynczy program.

  5. Wszystkie biblioteki pytonów będą działać poprawnie po wyjęciu z pudełka.

    "Wszystko?" A co z tymi źle napisanymi?

  6. Skalowalny w przyszłości.

    Pewnie. Zawsze mamy na to nadzieję. Nie ma żadnej gwarancji.

  7. Przyszłe uaktualnienie nie powoduje żadnych problemów.

    To zabawne.

"Chcę te funkcje."

Wszyscy tak robimy. Realistycznie, możesz uzyskać # 2. Reszta nie ma sensu lub nie można być pewnym.

1

mod_wsgi jest znacznie aktywniej utrzymywany niż mod_python w tym momencie. Ma również dużą dynamikę, ponieważ została nieco zaadoptowana jako preferowana metoda wdrażania na apache2 od Django. Autor jest również aktywnie zaangażowany w społeczność Pythona w odniesieniu do przyszłej ewolucji WSGI.

Powiązane problemy