Note that there are some explanatory texts on larger screens.

plurals
  1. PONeed help processing upload form with Google App Engine Blobstore
    primarykey
    data
    text
    <p>I'm trying to learn the blobstore API... and I'm able to successfully upload files and get them back, but I'm not having any luck trying to combine an upload form with a regular webform to be able to associated extra info with the file, such as a nickname for the file.</p> <p>Below is the code for a simple app I've been playing with. It's based on the sample google provides.</p> <pre><code>#!/usr/bin/env python # import os import urllib from google.appengine.ext import blobstore from google.appengine.ext import webapp from google.appengine.ext.webapp import blobstore_handlers from google.appengine.ext.webapp import template from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import db class StoredFiles(db.Model): nickname = db.StringProperty() blobkey = blobstore.BlobReferenceProperty() @staticmethod def get_all(): query = db.Query(StoredFiles) files = query.get() return files def doRender(handler, page, templatevalues=None): path = os.path.join(os.path.dirname(__file__), page) handler.response.out.write(template.render(path, templatevalues)) class MainHandler(webapp.RequestHandler): def get(self): allfiles = StoredFiles.get_all() upload_url = blobstore.create_upload_url('/upload') templatevalues = { 'allfiles': allfiles, 'upload_url': upload_url, } doRender(self, 'index.html', templatevalues) class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(self): upload_files = self.get_uploads('file') blob_info = upload_files[0] self.redirect('/save/%s' % blob_info.key()) class SaveHandler(webapp.RequestHandler): def get(self, resource): newFile = StoredFiles() newFile.nickname = self.request.get('nickname') resource = str(urllib.unquote(resource)) newFile.blobkey = resource newFile.put() self.redirect('/') class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler): def get(self, resource): resource = str(urllib.unquote(resource)) blob_info = blobstore.BlobInfo.get(resource) self.send_blob(blob_info) def main(): application = webapp.WSGIApplication( [('/', MainHandler), ('/upload', UploadHandler), ('/save/([^/]+)?', SaveHandler), ], debug=True) run_wsgi_app(application) if __name__ == '__main__': main() </code></pre> <p>According to the docs, the blobstore handler is supposed to pass through the blob key and the rest of the form to the handler its redirected to... blob key is coming through just fine, but nothing else is.</p> <p>Can someone please point out where I'm messing up or point me to a good tutorial describing this use case?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload