Najlepszy sposób na stworzenie prostego serwisu internetowego w języku python [zamknięty]

Używam Pythona od lat, ale mam niewielkie doświadczenie w programowaniu stron internetowych w Pythonie. Chciałbym stworzyć bardzo prosty serwis internetowy, który udostępnia niektóre funkcjonalności z istniejącego skryptu Pythona do użytku w mojej firmie. Prawdopodobnie zwróci wyniki w pliku csv. Jaki jest najszybszy sposób na zdobycie czegoś? Jeśli wpłynie to na Twoją sugestię, prawdopodobnie dodam do tego więcej funkcjonalności, w dół drogi.

Author: Jeremy Cantrell, 2009-01-06

9 answers

[[0]}spójrz na werkzeug . Werkzeug zaczynał jako prosty zbiór różnych narzędzi dla aplikacji WSGI i stał się jednym z najbardziej zaawansowanych modułów narzędzi WSGI. Zawiera potężny debugger, w pełni funkcjonalne obiekty żądań i odpowiedzi, narzędzia HTTP do obsługi znaczników encji, nagłówki kontroli pamięci podręcznej, daty HTTP, obsługę plików cookie, przesyłanie plików, potężny system przekierowywania adresów URL i kilka modułów dodatków do społeczności.

Zawiera wiele fajnych narzędzi do pracuj z http i ma tę zaletę, że możesz go używać z wsgi w różnych środowiskach(cgi, fcgi, apache / mod_wsgi lub ze zwykłym prostym serwerem Pythona do debugowania).

 54
Author: Peter Hoffmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 03:18:24

Web.py jest prawdopodobnie najprostszym frameworkiem internetowym. "Gołe" CGI jest prostsze, ale jesteś całkowicie zdany na siebie, jeśli chodzi o tworzenie usługi, która faktycznie coś robi.

"Witaj, Świecie!"według web.py nie jest dużo dłuższa niż wersja CGI, ale dodaje mapowanie adresów URL, rozróżnienie poleceń HTTP i parsowanie parametrów zapytania za darmo :

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'world'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()
 26
Author: Tim Lesher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 02:59:18

Najprostszym sposobem, aby uzyskać skrypt Pythona online jest użycie CGI:

#!/usr/bin/python

print "Content-type: text/html"
print

print "<p>Hello world.</p>"

Umieść ten kod w skrypcie, który mieszka w katalogu CGI serwera www, wykonywalny i uruchom go. Moduł cgi ma wiele przydatnych narzędzi, gdy musisz zaakceptować parametry od użytkownika.

 16
Author: Greg Hewgill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 02:36:24

Raw CGI to rodzaj bólu, Django to rodzaj wagi ciężkiej. Istnieje wiele prostszych, lżejszych frameworków o, np. CherryPy. Warto się trochę rozejrzeć.

 11
Author: Charlie Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-14 15:11:51

Spójrz na implementację wzorcową WSGI . Masz go już w swoich bibliotekach Pythona. To dość proste.

 9
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 11:19:54

Jeśli masz na myśli "Web Service" coś, do czego dostęp mają inne programy SimpleXMLRPCServer może być właśnie dla Ciebie. Jest on dołączany do każdej instalacji Pythona od wersji 2.2.

Do prostych, dostępnych dla człowieka rzeczy zwykle używam Pythons SimpleHTTPServer, który jest również dostarczany wraz z każdą instalacją. Oczywiście można również uzyskać dostęp do SimpleHTTPServer przez programy klienckie.

 4
Author: max,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 20:50:50

Życie jest proste, jeśli masz dobry framework internetowy. Usługi internetowe w Django są łatwe. Zdefiniuj swój model, napisz funkcje widoku, które zwracają dokumenty CSV. Pomiń szablony.

 2
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 02:32:50

Jeśli masz na myśli "serwis internetowy" w sensie SOAP/WSDL, warto spojrzeć na generowanie WSDL za pomocą Pythona i SOAPpy

 2
Author: che,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:04
 1
Author: mabbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-06 03:46:26