2013-01-04 15 views
7

私はPythonを初めて使い、一般的にプログラミングしているので、何かがLaymanの言葉になるはずです。pythonスクリプトをオンラインで実行する(django)

私はCSVファイルを読み込んで結果を出力する簡単なスクリプトを作成しました。私はそのスクリプトをアップロードし、それをシンプルなWebインターフェイスまたはWebアプリケーションとしてオンラインで実行したいと思います。

私は、Pythonanywhere.comにDjangoフレームワークを使用してサインアップしました。私は正しい道にここにいますか?

ありがとうございました。

+1

あなたの質問はあまりにも曖昧です。望ましい答えが何であるかははっきりしない。あなたはおそらくDjangoをチェックアウトしたいと思うかもしれませんが、pythonanywhereはおそらくWebサーバーを実行するのに適切な場所ではありません。 – jterrace

+0

これは助けになるかもしれません:https://scraperwiki.com/ –

+2

あなたがpythonanywhereを使用しているなら、私はあなたがそうだと思います。そのタグを追加すると、サイトの誰かが来て、より多くのアドバイスやヒントを提供します。 – Droogans

答えて

4

PythonAnywhereデベロッパーとして、私はあなたが正しい場所でスタートしたと言います。できるだけシンプルにしようとします。

flask web frameworkを使用すると、簡単なアプリケーションから開始することができます。そのためのクイックスタートもあります。以下は訪問時に出力を返す非常に単純なフラスコアプリです。このコードは\var\www\your_username_pythonanywhere_com_wsgi.pyファイルに書き込まれます。

import os 
import sys 
from flask import Flask 

app = Flask(__name__) 
app.debug = True 


path = '/home/your_username/' 
if path not in sys.path: 
    sys.path.append(path) 

from my_script import function_that_parses_csv 

@app.route('/') 
def root(): 
    return function_that_parses_csv() 

これは、Webサービスとして少しのデータを処理する最もシンプルな単一ファイルです。私はそれを働かせ始めると言うでしょう、そして、あなたはあなたの知識を広げて、機能を追加することができます。

+0

あなたは朝食のあまりにも多くの質問に答えていますか?:) – hwjp

+2

確かに、そういう厄介な子供のためでなければ、私はそれを忘れてしまったでしょう。 – aychedee

8

私は多分偏っているかもしれませんが、私は確かに、あなたは正しい道にいると言います!

人々がcsvをアップロードできるように思えば、あなたのWebアプリケーションはそれを処理して結果を出力しますか?もしそうなら、Djangoのドキュメントをチェックアウトしない:あまりにも複雑

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

何を、あなたは例のようにFileFieldでDjangoのFormオブジェクトを作成する場合。

from django import forms 

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

あなたは正しいenctype含め、ウェブページやテンプレートにそれを置く:

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

は最後に、あなたは、フォームからURLとポストを(ハンドルあなたのビューでそれに対処アクション):

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) 

とは別に、特別な設定はPythonAnywhereでは必要ありません。ファイルは(一時的に)/ tmpに保存され、うまく動作します。後でファイルを保存したい場合は、そのためにコードを追加する必要があります。

希望に役立ちます。これ以上質問があればここにいます!

関連する問題