在线运行python脚本(django)

时间:2013-01-04 00:20:26

标签: python django pythonanywhere

我是Python的新手,也是一般的编程,所以任何解释都应该用Layman术语。

我创建了一个简单的脚本来读取CSV文件并输出结果。我想上传该脚本并将其作为简单的Web界面或Web应用程序在线运行。

我已经使用Django框架注册了pythonanywhere.com。我在这里走在正确的轨道上吗?

感谢。

2 个答案:

答案 0 :(得分:8)

我可能有偏见,但我敢肯定,你是在正确的轨道上!

听起来您希望人们能够上传csv,然后您的网络应用会处理它并输出结果?如果是这样,请查看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,这将正常工作。如果您想保存文件以供日后使用,则必须添加一些代码才能执行此操作。

希望有所帮助。如果您还有其他问题,我们会在这里!

答案 1 :(得分: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服务提供的最简单的单文件方式。我会说开始让它工作,然后你可以开始扩展你的知识和添加功能。