小编Alb*_*raa的帖子

Google App Engine(Python) - 上传文件(图片)

我希望用户能够将图像上传到Google App Engine.我有以下(Python):

class ImageData(ndb.Model):
     name = ndb.StringProperty(indexed=False)
     image = ndb.BlobProperty()
Run Code Online (Sandbox Code Playgroud)

用户使用表单(HTML)提交信息:

<form name = "input" action = "/register" method = "post">
    name: <input type = "text" name = "name">
    image: <input type = "file" name = "image">
</form>
Run Code Online (Sandbox Code Playgroud)

然后由以下处理:

class AddProduct(webapp2.RequestHandler):
    def post(self):
        imagedata = ImageData(parent=image_key(image_name))
        imagedata.name = self.request.get('name')
        imagedata.image = self.request.get('image')
        imagedata.put()
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试上传图片时,让我们说"Book.png",我收到错误: BadValueError: Expected str, got u'Book.png'

知道发生了什么事吗?我已经和GAE工作了很长时间,但这是我第一次使用blob.

我使用了这个链接:https://developers.google.com/appengine/docs/python/images/usingimages ,它使用的是db,而不是ndb.我也尝试将图像存储在变量中,就像在链接中一样: storedInfo = self.request.get('image') 然后存储它: imagedata.image = ndb.Blob(storedInfo) 这也给了我一个错误: AttributeError: 'module' object has no attribute …

python upload google-app-engine image app-engine-ndb

6
推荐指数
3
解决办法
8088
查看次数

在URL中使用HTML中的.svg文件?

我正在尝试从HTML的外部来源使用svg。假设我有这个svg:https//upload.wikimedia.org/wikipedia/commons/0/09/America_Online_logo.svg

我发现了许多方法可以做到这一点,包括:

<img src="your.svg"/> 
<object data="your.svg"/> 
<iframe src="your.svg"/> 
<embed src="your.svg"/> 
<div style="background:url(your.svg)">...</div>
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我必须使用的样式适用于svg标签。如果我以这个为例:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">       
<image xlink:href="https://upload.wikimedia.org/wikipedia/commons/0/09/America_Online_logo.svg"/>    
</svg>
Run Code Online (Sandbox Code Playgroud)

它不会显示在我的页面上,我只会看到一个空白的正方形!无论如何,我可以在svg标签中执行此操作吗?谢谢!

html svg

5
推荐指数
1
解决办法
1万
查看次数

Google App Engine - 按字符串排序的ndb?(蟒蛇)

是否可以通过StringProperty对查询结果进行排序?

我有以下内容:

class User(ndb.Model):
     first_name = ndb.StringProperty(indexed=False)
     last_name = ndb.StringProperty(indexed=False)
Run Code Online (Sandbox Code Playgroud)

现在,如果我想从数据库中检索存储的条目,我使用它(它的工作原理):

user_query = User.query(ancestor=user_key(user_name))
Run Code Online (Sandbox Code Playgroud)

但我希望结果由first_name排序,所以我使用这个:

user_query = User.query(ancestor=user_key(user_name)).order(-User.first_name)
Run Code Online (Sandbox Code Playgroud)

这不起作用!我不知道出了什么问题,它不会产生任何错误,但不会再出现任何结果.我得到的只是一张空桌子:-(

python database google-app-engine app-engine-ndb

1
推荐指数
1
解决办法
386
查看次数