2013-01-04 4 views
7

Ich bin neu in Python, und Programmierung im Allgemeinen, so dass alles erklärt werden sollte in Layman Bedingungen.Run Python-Skript online (Django)

Ich habe ein einfaches Skript erstellt, das CSV-Dateien liest und Ergebnisse ausgibt. Ich möchte dieses Skript hochladen und es online als einfache Web-Schnittstelle oder Web-App laufen lassen.

Ich habe pythonanywhere.com mit Django-Framework angemeldet. Bin ich hier richtig?

Danke.

+1

Ihre Frage ist ein wenig zu vage. Es ist nicht klar, was eine wünschenswerte Antwort wäre. Sie möchten wahrscheinlich Django ausprobieren, aber pythonanywhere ist wahrscheinlich nicht der richtige Ort, um den Webserver zu betreiben. – jterrace

+0

das könnte helfen: https://scraperwiki.com/ –

+2

Wenn Sie pythonanywhere verwenden, würde ich sagen, Sie sind. Sie sollten dieses Tag hinzufügen, jemand von der Website kommt vorbei und gibt Ihnen mehr Ratschläge und Tipps. – Droogans

Antwort

4

Als PythonAnywhere Entwickler würde ich sagen, dass Sie an der richtigen Stelle gestartet haben. Wir versuchen, die Dinge so einfach wie möglich zu machen.

Sie könnten mit einer einfacheren Anwendung beginnen, indem Sie flask web framework verwenden. Dafür gibt es auch einen Schnellstart. Unten ist eine sehr einfache Flask-App, die beim Besuch einige Ausgaben zurückgibt. Dieser Code würde in die Datei \var\www\your_username_pythonanywhere_com_wsgi.py gehen.

Das ist die einfachste, einzige Datei, um ein bisschen Daten als Web-Service zu bedienen. Ich würde sagen, fangen Sie damit an, das zu arbeiten, und dann können Sie beginnen, Ihr Wissen zu erweitern und Funktionen hinzuzufügen.

+0

So beantworten Sie SO Fragen über das Frühstück auch, nicht wahr?:) – hwjp

+2

Sicher bin ich, und ich wäre damit auch davongekommen, wenn es nicht für diese lästigen Kinder gewesen wäre. – aychedee

8

Ich bin vielleicht voreingenommen aber ich würde sagen, Sie sind auf dem richtigen Weg!

Es klingt wie Sie wollen, dass Menschen in der Lage, eine CSV hochladen, dann wird Ihre Web-App es verarbeiten und die Ergebnisse ausgeben? Wenn ja, überprüfen Sie die Django-Dokumentation aus:

https://docs.djangoproject.com/en/1.3/topics/http/file-uploads/

Nichts zu kompliziert, wenn Sie ein Django Form-Objekt mit einem FileField gemäß dem Beispiel erstellen.

from django import forms 

class UploadFileForm(forms.Form): 
    file = forms.FileField() 

Sie setzten es dann in Ihre Webseite oder eine Vorlage, einschließlich der korrekten enctype:

<form enctype="multipart/form-data" method="post" action="/foo/"> 
{{form.as_p}} 
</form> 

Schließlich geht man mit ihm in der Ansicht, dass die Post behandelt (mit der URL aus dem Formular action):

def handle_csv_upload(request): 
    form = UploadFileForm(request.POST, request.FILES) 
    if form.is_valid(): 
     results = do_my_csv_magic(request.FILES['file']) 
     # now eg save the results to the database, and show them to the user 
     db_entry = MyCSVResults(results=results) 
     db_entry.save() 
     # it's good practice to use a redirect after any POST request: 
     return HttpResponseRedirect('/show_results/%d/' % db_entry.id) 

Abgesehen davon ist bei PythonAnywhere keine spezielle Konfiguration erforderlich. Die Datei wird (vorübergehend) nach/tmp gespeichert, was gut funktioniert. Wenn Sie die Datei für später speichern möchten, müssen Sie dazu Code hinzufügen.

Hoffe, dass hilft. Wir sind hier, wenn Sie weitere Fragen haben!