在线运行python脚本(django)

use*_*154 7 python django pythonanywhere

我是Python的新手,也是一般的编程,因此任何解释都应该是Layman术语.

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

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

谢谢.

hwj*_*wjp 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()
Run Code Online (Sandbox Code Playgroud)

然后将其放入您的网页或模板中,包括正确的enctype:

<form enctype="multipart/form-data" method="post" action="/foo/">
{{form.as_p}}
</form>
Run Code Online (Sandbox Code Playgroud)

最后,您在处理帖子的视图中处理它(使用表单操作中的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)
Run Code Online (Sandbox Code Playgroud)

除此之外,PythonAnywhere上不需要特殊的特殊配置.该文件(暂时)保存到/ tmp,这将正常工作.如果要保存文件以供日后使用,则必须添加一些代码才能执行此操作.

希望有所帮助.如果您有任何疑问,我们会在这里!


ayc*_*dee 4

作为一名PythonAnywhere开发人员,我想说您的起点是正确的。我们确实尝试让事情尽可能简单。

您可以使用Flask Web 框架从更简单的应用程序开始。还有一个快速入门。下面是一个非常简单的 Flask 应用程序,在访问时会返回一些输出。这段代码将进入\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()
Run Code Online (Sandbox Code Playgroud)

这是将一些数据作为 Web 服务提供的最简单的单个文件方式。我想说,首先要让它发挥作用,然后你就可以开始扩展你的知识并添加功能。

  • 当然可以,如果不是那些讨厌的孩子,我也能逃脱惩罚。 (2认同)