在线运行python脚本(django)[关闭]
Posted
技术标签:
【中文标题】在线运行python脚本(django)[关闭]【英文标题】:Run python script online (django) [closed] 【发布时间】:2012-12-18 10:26:08 【问题描述】:我是 Python 的新手,并且是一般的编程新手,所以任何解释都应该用通俗易懂的术语来解释。
我创建了一个读取 CSV 文件并输出结果的简单脚本。我想上传那个脚本,让它作为一个简单的网络界面或网络应用程序在线运行。
我已经使用 Django 框架注册了 pythonanywhere.com。我在正确的轨道上吗?
谢谢。
【问题讨论】:
你的问题有点含糊。目前尚不清楚理想的答案是什么。您可能想查看 Django,但 pythonanywhere 可能不是运行 Web 服务器的正确位置。 这可能会有所帮助:scraperwiki.com 如果你在使用 pythonanywhere,我会说你是。您应该添加该标签,该网站的人会过来为您提供更多建议和提示。 pythonanywhere dev here - 显然我不得不不同意@jterrace 并说 pythonanywhere 是完美的地方!无需安装任何软件,基本的 django 托管是免费的,并且具有一键设置。 @hwjp 没有意识到你们有像这样开箱即用的 django。我收回我的声明:) 【参考方案1】:我可能有偏见,但我敢肯定,你走在正确的轨道上!
听起来您希望人们能够上传 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,它可以正常工作。如果您想保存文件以供以后使用,则必须添加一些代码来执行此操作。
希望对您有所帮助。如果您还有任何问题,我们随时为您服务!
【讨论】:
【参考方案2】:作为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 服务提供的最简单的单一文件方式。我会说首先让它发挥作用,然后您就可以开始扩展您的知识并添加功能。
【讨论】:
所以你也在早餐时回答了一些问题,对吧? :) 当然可以,如果不是那些讨厌的孩子,我也会侥幸逃脱。以上是关于在线运行python脚本(django)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Django 运行 Python 脚本并将输出传递给 javascript 文件
通过单击提交按钮在 Django 网站中运行 Python 脚本