私はGoogleのアプリケーションエンジンでかなり新しいです。だからこの問題で私を助けてください。確かに、私のコードは間違っていますが、私はどこにいるのでしょうか?ここでコード:ファイルをblobstoreデータストアにアップロード
import os
import urllib
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp.util import run_wsgi_app
import datetime
import wsgiref.handlers
from google.appengine.api import mail
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp \
import template
class MyUsers(db.Model):
firstname = db.StringProperty(
required=False)
lastname = db.StringProperty(
required=False)
email = db.StringProperty(
required=False)
zipcode = db.StringProperty(
required=False)
file = db.BlobProperty(
required=False)
idea = db.TextProperty(
)
ask = db.StringProperty(
required=False)
contact_back = db.StringProperty(
required=False)
phone = db.StringProperty(
required=False)
regdate = db.DateTimeProperty(
auto_now_add=True)
class MainHandler(webapp.RequestHandler):
def get(self):
self.response.out.write(
template.render('expert.html',[]))
class Register(webapp.RequestHandler):
def get(self):
upload_url = blobstore.create_upload_url('/upload')
self.response.out.write(
template.render('expert.html',[]))
def post(self):
user = MyUsers(
firstname = self.request.get('firstname'),
lastname = self.request.get('lastname'),
email = self.request.get('email'),
zipcode = self.request.get('zipcode'),
ask = self.request.get('ask'),
idea = self.request.get('idea'),
file = self.request.get('file'),
contact_back = self.request.get('contact_back'),
phone = self.request.get('phone'),
)
phone = self.request.get('phone')
firstname = self.request.get('firstname')
email = self.request.get('email')
lastname = self.request.get('lastname')
user.put()
emailto = self.request.get('email')
body = """Dear """+firstname+""":
Thank you for registering.
Please let us know if you have any questions.
As One Source.
"""
mail.send_mail("[email protected]", emailto, "Confirmation Email", body)
mail.send_mail(sender="Daniyar Seisenov <[email protected]>",
to="Daniyar Seisenov <[email protected]>",
subject="New User",
body="""
This applicant has just registered. Please review:
Firstname: """+firstname+"""
Lastname: """+lastname+"""
Email: """+email+"""
Phone: """+phone+"""
""")
self.redirect('/')
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file') # 'file' is file upload field in the form
blob_info = upload_files[0]
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)
self.redirect('/serve/%s' % blob_info.key())
class Users(webapp.RequestHandler):
def get(self):
myusers=db.GqlQuery(
'SELECT * FROM MyUsers '
'ORDER BY regdate DESC'
)
values = {
'myusers':myusers,
'totalmyusers' : myusers.count()
}
self.response.out.write(
template.render('userscountandremove.html',
values))
def main():
application = webapp.WSGIApplication([('/', MainHandler),
('/upload', UploadHandler),
('/serve/([^/]+)?', ServeHandler),
('/register',Register),
('/userscountandremove',Users)],
debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
expert.htmlからsubmitを押すと、「ファイル」はデータストアのブロブストアには移動しません。あなたが解決策を知っているなら、私を助けてください。ありがとう
あなたの責任に感謝します。私の問題はここにもあるとは思わない:私のテンプレートページアクションのself.redirect( '/ serve /%s'%blob_info.key())は:(/ register)..私は%sを/ register、しかしそれは動作しません..あなたは私が&sと何をすべきか教えていただけますか?ありがとうagain – Danik
あなたはBlobstoreにファイルを保存したいのですか、Datastoreのblobとして保存しますか?まず第一に、それを理解する必要があります。 Youre Register()関数はファイルをデータストアに保存しますが、ServeHandler()はBlobstoreからファイルを取得しようとします。 – dragonx
私はBlobstoreに自分のファイルを保存したい。あなたが私を助けることができれば幸いです。 – Danik