Python 如何在Django中简单地为cronjob设置文件上传程序?

Python 如何在Django中简单地为cronjob设置文件上传程序?,python,django,file-upload,Python,Django,File Upload,我所要做的就是在Django中设置一个员工专用页面,将一些简单的.txt文件上传到服务器,然后cronjob将选择它来完成其余的工作。我读过一些Django文件上传的文档,但大多数文档似乎有点太多,这意味着我需要先创建一些模型,等等。但在我的例子中,它只是cronjob的一个简单文本文件,我不想让它变得那么复杂。有没有更简单的方法来实现这一点?您可以创建自己的视图来上传文件,而无需使用模型。您只需要在其中创建一个视图,然后创建视图和控制器,就像这样: 视图.py def upload_file(

我所要做的就是在Django中设置一个员工专用页面,将一些简单的.txt文件上传到服务器,然后cronjob将选择它来完成其余的工作。我读过一些Django文件上传的文档,但大多数文档似乎有点太多,这意味着我需要先创建一些模型,等等。但在我的例子中,它只是cronjob的一个简单文本文件,我不想让它变得那么复杂。有没有更简单的方法来实现这一点?

您可以创建自己的视图来上传文件,而无需使用模型。您只需要在其中创建一个视图,然后创建视图和控制器,就像这样:

视图.py

def upload_file(request):
    if request.method == 'POST':
        form = FileForm(request.POST, request.FILES)
        if form.is_valid() and form.is_multipart():
            save_file(request.FILES['file'])
            return HttpResponse('Thanks for uploading the file')
        else:
            return HttpResponse('Bad file data.')
    else:
        form = FileForm()
    return render_to_response('upload_file_form.html', {'form': form})

def save_file(file, path=''):
    filename = file._get_name()
    fd = open('%s/%s' % (MEDIA_ROOT, str(path) + str(filename)), 'wb')
    for chunk in file.chunks():
        fd.write(chunk)
    fd.close()
上传文件\u form.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>File Form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <h1>Upload file</h1>
        {% if form.errors %}
            <p style="color: red;">
                Please correct the error{{ form.errors|pluralize }} below.
            </p>
        {% endif %}

        <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
            <table>
                {{ form.as_table }}
            </table>
            <input type="submit" value="Upload file">
        </form>
  </body>
</html>

文件格式
上传文件
{%if form.errors%}

请更正下面的错误{form.errors | pluralize}}。

{%endif%} {%csrf_令牌%} {{form.as_table}}