如何在appengine中使用get_serving_url?

2024-02-07

以下是到目前为止我的 main.py 。

import cgi
import datetime
import logging

from google.appengine.ext import db
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import images

logging.getLogger().setLevel(logging.DEBUG)


class Greeting(db.Model):
    author = db.UserProperty()
    content = db.StringProperty(multiline=True)
    imageblob = blobstore.BlobReferebceProperty()
    date = db.DateTimeProperty(auto_now_add=True)

class MainPage(webapp.RequestHandler):
    def get(self):
        self.response.out.write('<html><body>')
        query_str = "SELECT * FROM Greeting ORDER BY date DESC LIMIT 10"
        greetings = db.GqlQuery (query_str)

        for greeting in greetings:
            if greeting.author:
                self.response.out.write('<b>%s</b> wrote:' % greeting.author.nickname())
            else:
                self.response.out.write('An anonymous person wrote:')
            self.response.out.write("<div><img src='img?img_id=%s'></img>" %
                                greeting.key())
            self.response.out.write(' %s</div>' %
                              cgi.escape(greeting.content))

        self.response.out.write("""
          <form action="/sign" enctype="multipart/form-data" method="post">
            <div><label>Message:</label></div>
            <div><textarea name="content" rows="3" cols="60"></textarea></div>
            <div><label>Avatar:</label></div>
            <div><input type="file" name="img"/></div>
            <div><input type="submit" value="Sign Guestbook"></div>
          </form>
        </body>
        </html>""")

class Image (webapp.RequestHandler):
    def get(self):
        greeting = db.get(self.request.get("img_id"))
        if greeting.avatar:
            self.response.headers['Content-Type'] = "image/png"
            self.response.out.write(greeting.avatar)
        else:
            self.response.out.write("No image")

class Guestbook(webapp.RequestHandler):
    def post(self):
        greeting = Greeting()
        if users.get_current_user():
            greeting.author = users.get_current_user()
        greeting.content = self.request.get("content")
        avatar = get_serving_url(self.request.get("img"), size=None, crop=False)
        #avatar = images.crop(self.request.get("img"), 0.0, 0.0,1.0,0.5)
        greeting.avatar = db.Blob(avatar)
        greeting.put()
        self.redirect('/')


application = webapp.WSGIApplication([
    ('/', MainPage),
    ('/img', Image),
    ('/sign', Guestbook)
], debug=True)


def main():
    run_wsgi_app(application)


if __name__ == '__main__':
    main()

就像它说的那样the docs http://code.google.com/appengine/docs/python/images/functions.html:

返回提供图像的 URL。 此 URL 格式允许动态 调整大小和裁剪,这样你就不用 需要存储不同尺寸的图像 服务器。图像以低 高度优化的延迟, 无 cookie 的基础设施。

在你的代码中你似乎正在使用get_serving_url()构建一个Blob。这是行不通的,因为get_serving_url()返回 URL,而不是图像数据。

你似乎也很困惑blobstore.BlobReferenceProperty http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#BlobReferenceProperty and a db.BlobProperty http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#BlobProperty -- a BlobReferenceProperty引用上传并存储在中的对象斑点存储区 http://code.google.com/appengine/docs/python/blobstore/而一个BlobProperty将 blob 数据直接存储在数据存储中。

解决您问题的更好方法是将您在请求中获得的图像存储起来(作为BlobProperty)在您的模型中,然后使用不同的尺寸提供它get_serving_url().

或者,如果您希望存储大图像,请将图像存储在 blobstore 中并使用BlobReferenceProperty-- 无论哪种方式,你应该只使用get_serving_url() to serve图像,而不是存储它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在appengine中使用get_serving_url? 的相关文章

  • .NET Image.Save 方法在 Windows 64 位上产生不可重现的结果

    我正在使用 NET 框架 尝试过 3 5 和 4 0 来加载 TIFF 文件并将其另存为 PNG 我预计对 Save 方法的两次后续调用 使用相同的 TIFF 文件 会生成相同的 PNG 文件 然而 生成的文件 有时 是不同的 下面的 C
  • 从 TransformedBitmap 对象中“跨越”困境

    我有一个 2208 x 3000 TransformedBitmap 对象 其格式为 Indexed8 我正在对其进行 CopyPixels 操作 我在用着 int formattedBitmap PixelWidth formattedB
  • Spark 计划中针对 Firebase Cloud Functions 的“Google 拥有的服务”的定义

    Firebase 免费套餐 Spark 计划 内的 Firebase Cloud Functions 无法发出任何出站请求 除非它们是 Google 自有的服务 Spark 计划仅允许向 Google 拥有的服务发出出站网络请求 1 这是非
  • appengine python (bigtable) 中的父->子关系

    我仍在学习有关 bigtable nosql 中的数据建模的课程 并且希望得到一些反馈 如果我经常需要跨父母处理孩子的聚合 那么我应该在数据建模中避免父母 gt 孩子的关系吗 举个例子 假设我正在构建一个由许多作者贡献的博客 每个作者都有帖
  • 在vb.net中将base64解码为图像

    我一直在互联网上搜索 但没有找到答案 你想告诉我如何解码base64 to be Image像折线图一样 我一直在尝试从base64 to Byte首先数组并从Byte数组到Image Private Function convertbyt
  • 绘制圆圈(使用 for 循环在图像中应用的像素)

    我想使用像素位置 从左上角开始到右下角结束 绘制一个圆 带有 1 或 2 个 for 循环 我用这个方法成功绘制了一个矩形 private void drawrect int width int height int x int y int
  • 如何将路径添加到剪辑路径

    当尝试向图像添加波浪效果时 我陷入困境 这两个 SVG 一个包含我尝试实现的路径 第二个的行为符合预期 但剪辑路径 形状错误 当我粘贴到所需的路径时 它不起作用 为什么以及如何才能完成这项工作 期望的路径
  • 如何在Rails中显示URL指向的图像

    我这里有一张图片http power itp ac cn jmyang funny fun4 jpg http power itp ac cn jmyang funny fun4 jpg我想在我的 Rails 站点中显示它 我该怎么做 您还
  • Google App Engine 的用户 API 限制太多?

    看看 Google App Engine API 尽管它有很多出色的功能 但用户 API 却极其有限 看来你只能对拥有 Google 帐户 使用 OpenID 帐户或通过一些 OAuth 功夫 与 Facebook 帐户握手等 的人进行身份
  • 使用 openCV 检测 ROI

    我正在做一项工作 我必须找到感兴趣的区域 ROI 然后对图像执行阈值 由于我不是计算机领域的 所以我遇到了一些困难 我开始尝试通过以下代码找到投资回报率 code string filename 2011 06 11 09 3A12 3A1
  • 如何在可可中获取图像的作者

    我不明白为什么metaDic 总是为空 有一个代码 CFDataRef dataRef CGDataProviderCopyData CGImageGetDataProvider img CGImage UIImage img CGImag
  • Genymotion 无法识别 SD 卡上的图像

    所以我一直在玩 Genymotion 喜欢使用它 但一直无法弄清楚如何将图像导入 Android Gallery 应用程序 因此我可以测试另一个应用程序 当前在 Galaxy Nexus 上运行 Android 4 3 尝试通过 adb 和
  • FindFundamentalMatrix 未找到基本矩阵

    我正在尝试使用以下方法恢复相机的运动 基本矩阵 以及给出的算法维基百科 https en wikipedia org wiki Fundamental matrix computer vision 为了 我需要找到基本矩阵 我在用OpenC
  • Google App Engine 上的 Weld CDI:Servlet 中的注入未发生

    这是我第一次与 GAE 合作 我正在努力让 CDI 发挥作用 长话短说 Inject我的 servlet 中的字段没有被注入 它总是null 我正在 Eclipse 中工作 并在 GAE SDK 中包含的本地测试服务器上调试应用程序 也由
  • 如何判断 Django 忽略 Accept-Language 标头的原因?

    我有一个 Django 应用程序 在 Google App Engine 上 我希望将其国际化 设置 py USE I18N True LANGUAGE CODE en Restrict supported languages and JS
  • 如何裁剪 JavaFX 图像并调整其大小?

    我正在尝试在 JavaFX 画布上显示非常大的图像 单张图像的分辨率为11980x8365 每个图像都有一个相应的世界文件 我可以使用它来正确定位图像 我的画布尺寸是 800x600 有时我需要在画布上写下整个图像 有时只是其中的一部分 这
  • AsyncTask加载图像RecyclerView

    我正在尝试创建一个与该应用程序类似的应用程序 一个在回收视图中包含一些图像和描述 卡片视图 的应用程序 https lh5 ggpht com At pHbZqdzlgmAqY0jbiztDYIAts1wOYWGTOHibmFHuq8CFA
  • 使用 Java Google App Engine 批量加载程序将整个数据存储区下载到一个 csv 文件

    我目前正在使用 kind参数来指定下载的类型和 filename指定要生成的 csv 文件的名称 这 rps limit bandwidth limit and batch size用于加速下载 例如 要下载我正在使用的游戏类型 appcf
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代

随机推荐

  • Delphi快速加大整数?

    function AddNumStrings Str1 Str2 string string var i integer carryStr string worker integer workerStr s string begin Res
  • 如何使用同一个工人让芹菜重试?

    我刚刚开始在 Django 项目中使用 celery 并且有点陷入这个特定问题 基本上 我需要将长期运行的任务分发给不同的工作人员 该任务实际上分为几个步骤 每个步骤都需要相当长的时间才能完成 因此 如果某个步骤失败 我希望 celery
  • mclapply 与大对象 - “序列化太大,无法存储在原始向量中”

    我一直遇到一个问题multicore包裹和大物体 基本思想是我使用 Bioconductor 函数 readBamGappedAlignments 读取大对象 我有一个文件名的字符向量 并且我一直在使用mclapply循环遍历文件并将它们读
  • iOS7 中旋转后 UITextview 文本不显示顶行

    我有一个包含显示静态文本的 UITextview 的应用程序 我使用 UITextview 来滚动文本 该文本比 UILabel 中可以显示的长得多 由于某种原因 iOS 7 下 UITextview 中的文本在旋转后不会保持滚动到顶部 在
  • Django /subdirectory/admin/ 重定向到 /admin/login/?next=/admin/

    我在端口 8011 上设置了一个 Django 服务器 并让 nginx 将其作为端口 80 上的子目录 静态文件 很好 页数 不错 但是当我访问 subdirectory admin 时 它需要我 admin login next adm
  • 是什么限制了我的 PHP 资源?

    我在从 PHP 中获取更多内存时遇到问题 这是错误消息 Fatal error Allowed memory size of 20971520 bytes exhausted tried to allocate 82 bytes in Ye
  • 存储大量数据的最智能方式

    我想通过 REST 请求访问 flickr API 并下载大约的元数据 1 张 Mio 照片 也许更多 我想将它们存储在 csv 文件中 然后将它们导入 MySQL 数据库以进行进一步处理 我想知道处理如此大数据的最明智的方法是什么 我不确
  • 在 fancybox 中加载图像 150% 的大小

    我只是创建一个愚蠢的 GIF 画廊 其中显示一个缩略图 单击时相关的 GIF 将被加载并显示在一个 fancybox 中 我的 fancybox 的代码是这样的 fancyGIF fancybox arrows false openEffe
  • XML 元素和命名空间

    我有以下方法来解析 XMLElements DisplayMessages XElement root var items root Descendants Item foreach var item in items var name i
  • D 中的模板参数推理

    我正在编写一些对静态 D 数组进行操作的向量函数 如下所示 real N unit uint N real N v real N u v norm v explicit type necessary to force slice opera
  • iOS 即席分发

    我目前已经完成了 iOS 应用程序的制作 我想使用临时分发方式在我的同事之间分发该应用程序 我只有两个月的 XCode 经验 对于向同事发送应用程序需要哪些材料 我感到很困惑 我不想犯下无法挽回的错误 为了将应用程序分发给其他人 我需要捆绑
  • pdf生成后如何打开打印对话框?

    我编写了一些动态生成 PDF 文件的操作 类似 reports reportGenerator action 当我打电话时reports reportGenerator param dialy它将在弹出窗口中打开生成的 pdf 然后我可以按
  • 我可以向同一台服务器发出 CURL 请求吗?

    我需要实现一种方法来对位于同一服务器或另一服务器上的页面进行 POST 调用 我们不能使用 include 因为我们调用的文件通常调用不同的数据库或具有相同名称的函数 我一直在尝试使用curl 来实现这一点 虽然它在从另一台服务器调用文件时
  • 跟踪文件但将其从 git 包中排除

    我有一个有点复杂的 ansible 工作流程 我有两个气隙网络 我在两个网络上开发剧本 所以我有两个由 git 管理的有点独立的 ansible 存储库 同时 大多数剧本都可以在这两个地方使用 使事情复杂化的是 这是一种单向转移 我可以从网
  • Jquery animate() 和 google chrome 问题

    我在 google Chrome 中遇到 jquery 和 animate 问题 我有一个最初隐藏的盒子 位于屏幕的右侧 当单击一个框时 隐藏的框变得可见并从右到中心动画 它停止并闪烁 然后它开始再次移动到屏幕的左侧并消失 这个东西适用于
  • 从 WebForm 使用 MVC HtmlHelper

    我正在向混合 WebForms MVC 站点添加一些 UI 功能 在本例中 我将一些 AJAX UI 功能添加到 WebForms 页面 通过 jQuery 并且数据来自 MVC JsonResult 一切都 100 正常工作 但有一个例外
  • Homestead 2 xdebug 不起作用

    我有一个 Homestead vagrant VM 设置 Xdebug 是开箱即用的远程调试的所有设置 我可以在这里看到这个 etc php5 fpm conf d 20 xdebug ini 并通过做一个php i grep xdebug
  • 在 Q 中链接任意数量的 Promise

    我想发送 N 次 HTTP 请求 我希望最终获得有关每个请求的结果的信息 运行一次请求函数效果很好 这是使用 Q defer 的 HTTP 请求函数 function runRequest var deferred Q defer star
  • 专门用于 :hover 的元素覆盖 :active 的等效类

    我有代码为背景分配了一个类的字体颜色 然后有单独的类用于更改 hover 或 active 上的颜色 但 active 状态不会触发 除非我删除 hover 特定类 CODEPEN http codepen io bjackson2016
  • 如何在appengine中使用get_serving_url?

    以下是到目前为止我的 main py import cgi import datetime import logging from google appengine ext import db from google appengine a