Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌应用程序引擎样板文件;对此资源的访问被拒绝”;尝试上载表单后出错_Python_Google App Engine_Python 2.7 - Fatal编程技术网

Python 谷歌应用程序引擎样板文件;对此资源的访问被拒绝”;尝试上载表单后出错

Python 谷歌应用程序引擎样板文件;对此资源的访问被拒绝”;尝试上载表单后出错,python,google-app-engine,python-2.7,Python,Google App Engine,Python 2.7,我有一个网站,我想让管理员上传图片通过上传表单 HTML:在页面上blob.HTML: <form name="uploader" action="/blob/" method="post" enctype="multipart/form-data"> <input type="file"><br> <input type="submit" value="Upload"> </form> 应用程序yaml: impor

我有一个网站,我想让管理员上传图片通过上传表单

HTML:在页面上
blob.HTML

<form name="uploader" action="/blob/" method="post" enctype="multipart/form-data">
    <input type="file"><br>
    <input type="submit" value="Upload">
</form>
应用程序yaml

import os

import webapp2
import jinja2    

# blobstore api
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers

template_env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.getcwd()))

class MainPage(webapp2.RequestHandler): 

    def get(self):

        upload_url = blobstore.create_upload_url('/blob/')
        template = template_env.get_template('blob.html') 
        context = {
             'upload_url': upload_url
        }
        self.response.write(template.render(context))

    def post(self):

        upload_files = self.get_uploads('uploader')
        blob_info = upload_files[0]
        # So some logging here and concept to store the reference of the blob key.
        #self.redirect('/')
...stuff...
handlers:
- url: /blob/
  script: blob.app
  login: admin

...stuff...
但是,当我转到我网站上的
/blob/
时,我得到以下错误:

Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 239, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 301, in _LoadHandler
    raise err
ImportError: <module 'blob' from '/base/data/home/apps/s~themoringathebetter/1.372284039078482061/blob.pyc'> has no attribute app
回溯(最近一次呼叫最后一次):
文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第239行,在Handle中
handler=\u config\u handle.add\u wsgi\u中间件(self.\u LoadHandler())
文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第301行,在_LoadHandler中
提出错误
ImportError:没有属性app
完全重写 所以实际上,你希望有人为你编写一个小样本,给你。 使用
/uploadform/
作为表单,使用
/
作为索引。我尽可能地简单


确保已安装。(提示:对于osx,请使用easy_install pil)

你能告诉我们你在
post
方法下做了哪些尝试,而不是说“这就是我被卡住的地方”吗?代码,不管它是否损坏都有帮助。@ITNinja是的,我编辑了它。请不要完全编辑这个问题。打开一个新的。你有两个错误。1.
create\u upload\u url
应该是
create\u upload\u url(/blob/)
。2.向我们展示你的app.yaml,在那里你需要定义路线。3.您不会将上载url字符串传递给模板。您需要这样做。您之所以会出现错误,可能是因为您的app.yaml不知道路由。@JaceCotton将路由的处理程序添加到
blob.py
app=webapp2.WSGIApplication([(“/blob/”,MainPage)],debug=True)
@JaceCotton编辑了一些错误。我根据您的需要替换了不同的名称。@JaceCotton编辑了代码以在
/
上发布。你需要设置你的路线以及你的应用程序将如何处理它们。因为现在你只使用
/
,这没关系,但是阅读关于URL的内容,但是我的实际主页使用
/
,我更愿意保持这种方式。为什么它不能使用一个新的页面,比如
上传
?保持你喜欢的状态,没有人会这样说。您可以使用但阅读hot上的文档来处理“注册”到应用程序的路由@JaceCotton@JaceCottonNP我一开始和你有同样的问题,现在重新编码。当心。