我是Python的新手,並且一般編程,所以解釋的任何東西都應該用Layman術語。在線運行python腳本(django)
我創建了一個讀取CSV文件並輸出結果的簡單腳本。我想上傳該腳本並將其作爲簡單的Web界面或Web應用程序在線運行。
我已經使用Django框架註冊到pythonanywhere.com。我在正確的軌道上嗎?
謝謝。
我是Python的新手,並且一般編程,所以解釋的任何東西都應該用Layman術語。在線運行python腳本(django)
我創建了一個讀取CSV文件並輸出結果的簡單腳本。我想上傳該腳本並將其作爲簡單的Web界面或Web應用程序在線運行。
我已經使用Django框架註冊到pythonanywhere.com。我在正確的軌道上嗎?
謝謝。
作爲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服務。我想說,首先讓這個工作,然後你可以開始擴大你的知識和增加功能。
我可能會有偏見,但我會說確定,你在正確的軌道上!
這聽起來像你希望人們能夠上傳一個CSV,然後你的網絡應用程序將處理它並輸出結果?如果是這樣,請查看Django文檔:
https://docs.djangoproject.com/en/1.3/topics/http/file-uploads/
沒有什麼太複雜了,如果你創建了一個FileField
Django表單對象按例子。
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>
最後,對付它在你的觀點,即處理後(從形式的網址動作):
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,這將正常工作。如果您想稍後保存該文件,則必須添加一些代碼才能執行此操作。
希望有所幫助。如果您還有其他問題,我們就在這裏!
你的問題有點太含糊。目前還不清楚一個理想的答案是什麼。您可能想要查看Django,但pythonanywhere可能不是運行Web服務器的正確位置。 – jterrace
這可能有所幫助:https://scraperwiki.com/ –
如果你使用pythonanywhere,我會說你是。你應該添加該標籤,來自該網站的某個人會來,並給你更多的建議和提示。 – Droogans