上传一个文件googleapp-Python

上传一个文件googleapp-Python,python,google-app-engine,Python,Google App Engine,希望有人能帮我治愈我的愚蠢。我正在创建一个webapp,在这里我需要上传csv文件并处理它们。我正在努力使我的代码以最简单的形式工作。我可以加载页面,但只要按下提交按钮发布文件,就会出现403禁止的错误:拒绝访问此资源 当我在谷歌应用程序交互控制台上运行它时,它不会给我任何错误。请给我指一下正确的方向好吗 HTML: {% extends base_layout %} {% block header_title %} {% trans %}Upload Documents{%

希望有人能帮我治愈我的愚蠢。我正在创建一个webapp,在这里我需要上传csv文件并处理它们。我正在努力使我的代码以最简单的形式工作。我可以加载页面,但只要按下提交按钮发布文件,就会出现
403禁止的错误:拒绝访问此资源

当我在谷歌应用程序交互控制台上运行它时,它不会给我任何错误。请给我指一下正确的方向好吗

HTML:

{% extends base_layout %}


{% block header_title %}
        {% trans %}Upload Documents{% endtrans %}
{% endblock %}

{% block content %}

  <form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="myfile">
  <br>
  <input type="submit" name="submit" value="Submit">

{% endblock %} 

您不能简单地将文件上载到app engine,因为文件系统是只读的。您必须上传到云存储或blob存储。当使用其中一种时,您必须使用每种设备的设施


通过表单上传文件的最简单、最快速的方法是使用。

正确的方向:在blobstore示例中,他们在响应处理程序中创建html表单,这使我无法控制提交按钮在实际上传页面上的位置。我该怎么做?我过去曾尝试过使用它,但我找不到解决这个问题的方法。我不知道用python怎么做。我想您应该在
返回self.render\u template('upload.html')
之前调用
blobstore.create\u upload\u url
,并将其设置为排序的上下文变量。然后您应该能够访问模板中的上下文变量。这与我在Java中处理这个问题的方式非常相似。谢谢你的帮助。只是想知道如果我只想读取文件中的信息,我是否必须使用blobstore。我真的不想存储此文件,只需将信息取出并放入modelsNope您还可以创建一个接受
多部分/表单数据的请求处理程序。
class Upload(BaseHandler):
    def get(self):
        return self.render_template('upload.html')

    def post(self):

        file = self.request.POST.getall('myfile')

        #file will be process with data going into models here.

        self.response.out.write("success")