Python 谷歌应用程序引擎样板文件;对此资源的访问被拒绝”;尝试上载表单后出错
我有一个网站,我想让管理员上传图片通过上传表单 HTML:在页面上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
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我一开始和你有同样的问题,现在重新编码。当心。