2013-01-04 4 views
7

저는 Python을 처음 사용하고 프로그래밍에 익숙합니다. 따라서 설명 된 내용은 Layman 용어 여야합니다.python 스크립트 온라인 실행 (django)

나는 CSV 파일을 읽고 결과를 출력하는 간단한 스크립트를 만들었습니다. 이 스크립트를 업로드하여 간단한 웹 인터페이스 또는 웹 앱으로 온라인으로 실행하고 싶습니다.

저는 Django 프레임 워크를 사용하여 pythonanywhere.com에 가입했습니다. 나는 올바른 길을 가고 있는가?

감사합니다.

+1

질문이 너무 애매합니다. 바람직한 대답이 무엇인지는 명확하지 않습니다. 아마 장고를 확인하고 싶지만 pythonanywhere는 아마도 웹 서버를 운영하기에 적당한 장소가 아닐 것입니다. – jterrace

+0

이 도움이 될 수 있습니다 : https://scraperwiki.com/ –

+2

pythonanywhere를 사용하는 경우, 나는 말할 수 있습니다. 이 태그를 추가해야합니다. 사이트의 누군가가 와서 더 많은 조언과 조언을드립니다. – Droogans

답변

4

PythonAnywhere dev는 올바른 장소에서 시작했다고합니다. 우리는 가능한 한 단순하게하려고 노력합니다.

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() 

이것은 웹 서비스로 약간의 데이터를 제공하는 가장 간단한 단일 파일 방식입니다. 그 일을 시작함으로써 시작을 ​​말하면 지식을 확장하고 기능을 추가 할 수 있습니다.

+0

그래서 아침 식사에 대해서도 당신은 대답하고 있나?:) – hwjp

+2

물론, 성가신 애들을위한 것이 아니라면 나는 그것을 가지고 버렸을 것입니다. – aychedee

8

나는 편견이있을 수 있지만 나는 확실하다고 말하고 싶다. 올바른 길을 가고있다!

사람들이 csv를 업로드 할 수 있도록하려는 경우 웹 앱이 처리하고 결과를 출력합니다. 그렇다면, 장고 문서를 체크 아웃하지 :

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

아무것도 너무 복잡, 당신은 예를 들어 당으로 FileField와 장고 양식 객체를 생성합니다.

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

마지막으로, 양식에서 URL로 (포스트를 처리하여보기에서 처리 :

from django import forms 

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

당신은 다음 올바른 enctype를 포함하여 웹 페이지 또는 템플릿에 넣어 액션) :

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에 저장되어 정상적으로 작동합니다. 나중에 파일을 저장하려면 코드를 추가해야합니다.

희망이 있습니다. 더 이상 궁금한 점이 있으시면 여기에 있습니다!

관련 문제