如何在谷歌应用程序引擎模板上获取cookie值

2023-11-30

我正在开发一个应用程序来了解 python 和 Google App Engine。我想从 cookie 中获取值并在模板上打印以隐藏或显示某些内容。

是否可以?

哪种会话系统最适合与谷歌应用程序引擎一起使用?

在 gae 和模板上使用会话的最佳方式是什么?

如何使用模板验证 cookie 的值?


请记住,Google App Engine 是一个平台,而不是一个框架, 所以你的问题是如果 webapp2 (GAE 中使用的默认框架) 有一个很好的界面来处理cookies。即使框架没有 有这个接口,只要能访问到Cookie头 您可以访问cookies的请求。

以下是两个示例,一个使用 webapp2 cookies 接口,另一个使用 其他仅使用 Cookie 标头。

webapp2:

class MyHandler(webapp2.RequestHandler):
    def get(self):
        show_alert = self.request.cookies.get("show_alert")
        ...

Cookie 标头(使用 webapp2):

# cookies version 1 is not covered
def get_cookies(request):
    cookies = {}
    raw_cookies = request.headers.get("Cookie")
    if raw_cookies:
        for cookie in raw_cookies.split(";"):
            name, value = cookie.split("=")
            for name, value in cookie.split("="):
                cookies[name] = value
    return cookies


class MyHandler(webapp2.RequestHandler):
    def get(self):
        cookies = get_cookies(self.request)
        show_alert = cookies.get("show_alert")
        ...

会话也是如此,尽管制作了自己的会话库 比较困难,无论如何,webapp2 已经涵盖了:

from webapp2_extras import sessions

class MyBaseHandler(webapp2.RequestHandler):
    def dispatch(self):
        # get a session store for this request
        self.session_store = sessions.get_store(request=self.request)
        try:
            # dispatch the request
            webapp2.RequestHandler.dispatch(self)
        finally:
            # save all sessions
            self.session_store.save_sessions(self.response)

    @webapp2.cached_property
    def session(self):
        # returns a session using the backend more suitable for your app
        backend = "securecookie" # default
        backend = "datastore" # use app engine's datastore
        backend = "memcache" # use app engine's memcache
        return self.session_store.get_session(backend=backend)

class MyHandler(MyBaseHandler):
    def get(self):
        self.session["foo"] = "bar"
        foo = self.session.get("foo")
        ...

see 网络应用程序文档有关会话和 cookie 的更多信息。

关于您关于模板的问题,您应该再次查看您使用的模板引擎的文档并查找您需要了解的内容。

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

如何在谷歌应用程序引擎模板上获取cookie值 的相关文章

  • 计算温度的偏导数(温度的水平平流)

    我想知道哪种方法计算x和y方向温度的偏导数 温度的水平平流 最正确 第二个代码使用温度 纬向风和经向风的数据矩阵 提取温度 T 纬向风分量 u 和经向风分量 v 的数据 import matplotlib pyplot as plt imp
  • cv2.face.mindistancepredictcollector() 错误

    我已经安装了带有额外模块的 opencv 3 1 0 但是当我尝试使用 gt gt gt s cv2 face MinDistancePredictCollector 它返回一个错误 Traceback most recent call l
  • 地图与星图的性能?

    我试图对两个序列进行纯Python 没有外部依赖 逐元素比较 我的第一个解决方案是 list map operator eq seq1 seq2 然后我发现starmap函数来自itertools 这看起来和我很相似 但事实证明 在最坏的情
  • SMTPAuthenticationError: (535, b'5.7.8 用户名和密码在 Django 生产中不被接受?

    我在 Heroku 上部署了一个 Django 应用程序 在其中一节中 我使用 SMTP Gmail 设置向用户发送电子邮件 当我在本地运行项目时 电子邮件发送成功 但在 Heroku 上部署的项目上却发送失败 我在 Stackoverfl
  • 肥皂服务的良好框架是什么?

    我正在寻找一个用于肥皂的好框架service 我更喜欢使用Pythonic框架 但是在查看了soaplib rpclib 太不稳定 SOAPy 不适用于2 7 和ZSI 太 令人困惑 之后 我不确定这是否可能 我对使用另一种语言感到满意 尽
  • Python MySQL 模块

    我正在开发一个需要与 MySQL 数据库交互的 Web 应用程序 但我似乎找不到任何真正适合 Python 的模块 我特别寻找快速模块 能够处理数十万个连接 和查询 所有这些都在短时间内完成 而不会对速度产生重大影响 我想我的答案将是游戏领
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • int 对象在尝试对数字的数字求和时不可迭代? [复制]

    这个问题在这里已经有答案了 我有这个代码 inp int input Enter a number for i in inp n n i print n 但它抛出一个错误 int object is not iterable 我想通过将每个
  • 是否可以阻止 Google App Engine 上的 DoSing?

    我正在考虑为 Google App Engine 开发一个应用程序 它不应该获得太多流量 我真的不想为超出免费配额而付费 然而 似乎很容易通过使应用程序超载并超出配额来导致拒绝服务攻击 是否有任何方法可以防止或增加超过免费配额的难度 例如
  • 按字段名称对命名元组列表进行排序的 Pythonic 方法

    我想对命名元组列表进行排序 而不必记住字段名的索引 我的解决方案看起来相当尴尬 希望有人能有一个更优雅的解决方案 from operator import itemgetter from collections import namedtu
  • 为图例中的点设置固定大小

    我正在制作一些散点图 我想将图例中的点的大小设置为固定的相等值 现在我有这个 import matplotlib pyplot as plt import numpy as np def rand data return np random
  • Python3.1中的视图?

    Python3 1中的视图到底是什么 它们的行为方式似乎与迭代器类似 并且它们也可以具体化为列表 迭代器和视图有何不同 据我所知 视图仍然附加到创建它的对象上 对原始对象的修改会影响视图 来自docs http docs python or
  • 为什么全新安装后会有pip和conda包?

    All Windows 10 64 位 d l Anaconda 2 5 0 与 Python3 64 位并安装 全新安装后我输入conda list 并且 在软件包中 我看到 重复像 jupyter 1 0 0 py35 1 jupyte
  • 监控单个文件

    我需要监控 使用watchdog http pythonhosted org watchdog index html 单个文件 而不是整个目录 避免监视整个目录的最佳方法是什么 我想this http pythonhosted org wa
  • 具有条件的重复行 pandas dataframe python

    我的数据框有问题 我的 df 是 product power brand product 1 3 x 1500W brand A product 2 2x1000W 1x100W product 3 1x1500W 1x500W brand
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 从 sublime_plugin.WindowCommand 获取当前文件名

    我开发插件sublime text 3 并想要获取当前打开的文件路径 absolute1 self window view file name 在哪里self is sublime plugin WindowCommand 但失败了 Att
  • Networkx 中 Louvain 分区的可视化

    请帮助我更改 Louvain 聚类算法结果的可视化 我从网站上获取了代码https github com taynaud python louvain https github com taynaud python louvain我可以重写
  • 连接运算符 + 或 ,

    var1 abc var2 xyz print literal var1 var2 literalabcxyz print literal var1 var2 literal abc xyz 除了带有 的自动空格之外 两者有什么区别 哪个通
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla

随机推荐

  • 无法使用 Node.js 将大块数据填充到 mongodb

    我被要求导入从全市许多站点收集的大量天气数据 每个站点有 1 台计算机 每个计算机有一个文件夹 每 5 分钟同步到一台中央服务器 每天都会创建一个新文件 所以 基本上结构是这样的 一个txt文件的格式为csv文件 其中第一行为字段 其余为数
  • PATH_TRANSLATED 中的redirect:// 是什么?

    我有一个 htaccess通过请求的规则 类别 类别 slug to 类别 php 然而 当我检查 SERVER超级全局 我得到这个条目 Array PATH TRANSLATED gt redirect 那是什么 我从未见过重定向 bef
  • allow_tags=True 不会在 django admin 中渲染
    标签

    我想在 django admin 的 list display 中显示一个表单 但我遇到了这个问题 当我定义这样的东西时 class MyModelAdmin admin ModelAdmin list display foo pagar
  • 识别并填充列表框

    这对我来说是一个谜 填充列表框的语法是什么 但首先 如何识别列表框 我在很多论坛上读到 ListBox1 Additem 但是他们怎么知道它是 ListBox1 这是默认名称ListBox当您将其添加到表单时进行控制 VB 和 VBA 自动
  • CUDA 上的块间屏障

    我想在 CUDA 上实现块间屏障 但遇到了严重的问题 我不明白为什么它不起作用 include
  • PHP Guzzle 5:无法处理包含端口号的 URL

    我正在使用最新版本的guzzle from composer json guzzlehttp guzzle 5 from composer lock name guzzlehttp guzzle version 5 2 0 当我尝试使用包含
  • Javafx如何在webview中显示自定义字体?

    该网页使用了我的电脑上未安装的自定义字体 在这种情况下 WebView似乎使用操作系统的默认字体 但我有字体文件 xx ttf 如何将字体嵌入到我的应用程序中并告诉 WebView 使用它来识别页面上的字体 加载字体 Font loadFo
  • Pandas 将列拆分为多级

    我有一个像这样的数据框 df pd DataFrame pd DataFrame 1 2 3 4 5 6 7 8 9 10 11 12 columns X a Y b X b Y a X a Y b X b Y a 0 1 2 3 4 1
  • 如何在linux终端中再次打开进程?

    我从我的家用电脑上使用 putty 通过 ssh 连接到远程服务器 然后运行了一个需要几个小时才能完成的 python 程序 并且在运行时会打印一些内容 现在过了一会儿 我的互联网断开了 我不得不关闭并重新打开 putty 和 ssh 如果
  • phpmailer 无法从表单发送附件

    搜索 stackoverflow 后我没有得到任何问题的答案 问题是我有一个带有上传按钮的表单 因此当用户提交文件时 该文件将立即通过电子邮件发送给我 我使用 phpmailer 但我只收到消息而不是消息 附件 知道问题出在哪里吗 PS 我
  • Swift 3 - 为什么我的导航栏没有显示?

    我有一个简单的应用程序来测试 REST API 的推送通知 我想在应用程序中显示导航栏 但它不起作用 在我的 AppDelegate 中 我有以下代码 func application application UIApplication d
  • 合并两个列表python

    我有两个清单 a 1 2 3 4 5 6 b 7 8 我想将它合并到 c 1 2 3 7 4 5 6 8 I used zip a b 但结果似乎不正确 有人可以帮忙吗 zip 只会将元组和整数配对 您还需要连接元组和新项目 c aa bb
  • 使用 post/sendmessage 进行鼠标点击不起作用[重复]

    这个问题在这里已经有答案了 可能的重复 如何在C 中模拟鼠标点击 我努力了 Window FindWindow null untitled Paint PostMessage WindowToFind WM MOUSEMOVE 0 loca
  • 组合框的默认值

    您好 我尝试为组合框设置默认值 XAML
  • 检查范围内的 int

    java中是否有一种优雅的方法来检查int是否等于某个值 或者是否比某个值大 小1 例如 如果我检查x在身边5 我想返回 true4 5 and 6 因为 4 和 6 与 5 只相差一 有内置函数可以做到这一点吗 或者我这样写会更好吗 in
  • 如何使用 Jquery 为文件上传中选择的多个图像提供预览?

    大家好 我有一个 fileuplaod 用户可以在其中选择多个图像 我想在上传之前显示这些所选图像的预览 目前我将其管理为单个图像预览 我如何为所选的多个图像提供预览 function readURL input var img input
  • 使用 JavaFX 2.2 助记符(和加速器)

    我正在尝试让 JavaFX 助记符发挥作用 我在场景中有一些按钮 我想要实现的是通过按 Ctrl S 来触发此按钮事件 这是一个代码骨架 FXML public Button btnFirst btnFirst getScene addMn
  • MVC6 TagHelpers 一次性

    在较旧的 MVC HTML 帮助程序中 可以使用IDisposable包装内容 例如BeginForm助手会自动换行 stuff 有结束语form tag stuff MVC6 TagHelpers 支持这种内容包装吗 例如我想要这个
  • 如何将 Bundle 从 Fragment 传递到 Fragment

    我在我的应用程序中使用片段 这是我的第一个片段 它只是简单地膨胀了 xml 文件 public class FragmentA extends SherlockFragment Context myContext appContext Ov
  • 如何在谷歌应用程序引擎模板上获取cookie值

    我正在开发一个应用程序来了解 python 和 Google App Engine 我想从 cookie 中获取值并在模板上打印以隐藏或显示某些内容 是否可以 哪种会话系统最适合与谷歌应用程序引擎一起使用 在 gae 和模板上使用会话的最佳