问题标签 [webapp2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 App Engine 处理程序上接收来自 Firefox 12.0 的多个 HTTP 请求
我在使用 Firefox 12.0 和 GAE 上的 Python 处理程序时遇到了一些奇怪的行为。
当我在 Firefox 中请求此处理程序时,它会运行 3 次——但仅在它返回 GIF 时。
我目前正在通过基于处理程序的查询字符串设置一个内存缓存条目来解决它。我希望这将防止相同信息的重复 db.put()s。
这是一个有效的 URL:http ://test-o-tron.appspot.com——注意您可以更改这些查询字符串参数:
- 格式(“gif”或“html”)
- hack(“真”或“假”)
- mkey_suffix(用于轻松重置计数器的内存缓存键中的字符串)
这是代码:
google-app-engine - Google App Engine:从 Webapp2 缓存属性 (current_user) 获取用户对象
我想要实现的是从 webapp2.cached 属性获取用户对象。我在我的请求处理程序中定义了一个方法,它给了我当前用户。
我想获取用户对象,因为它是我的一个模型的 UserProperty(),如下所示:
现在,当上传表单发布时,一切正常,除了“用户”在数据存储中显示为“无”。
我在交互式控制台中使用它时发现的可能原因是 current_user 方法传递了一个 Web 缓存属性,而不是实际的用户对象。
例如:
现在我的问题是检索用户对象的最佳方法是什么?提前感谢您的所有帮助。
神话
PS:编辑:
以下是我试图将图像存储在数据存储中的代码:
PS:
补充一下,我也尝试过使用“users.get_current_user()”方法,该方法也返回“None”
google-app-engine - GAE 上的 webapp2、self.request.path 更改问题
在我的 GAE 应用程序中,我webapp2.RequestHandler.initialize
用来对请求执行自定义操作。
直到几天前,更改os.environ['PATH_INFO']
确实影响了在 RequestHandler 上调用 self.request.path 并且它反映了更改的请求路径。(这在 SDK 上仍然可以正常工作)
现在它不再起作用了。当然,我因此遇到了很大的问题。我知道这可能是一个极端情况,但这种变化的原因是什么?
受影响的代码:
python - 使用 Python + Jinja2 + GAE 在“get”请求中传递值时出现 CSS 渲染问题
这是我第一次在 Stack Overflow 上发帖。我正在尝试使用 Python、Jinja2 和 Google App Engine 构建一个相对简单的游戏。目前,我刚刚构建了一些简单的 CRUD 函数,用于创建、编辑、列出和销毁游戏。而且,在大多数情况下,它似乎有效。但是,每当我传递一个值来检索特定游戏时,似乎都没有应用我的 CSS 样式表。但是,只要我不传递任何值,它似乎就可以正常工作。例如,如果我调用诸如“create_game”或“all_games”之类的不带任何参数的函数,它们各自的模板将使用相关的 CSS 样式正确呈现。但是,如果我调用像“edit_game/12345567”这样的函数,则根本不会应用 CSS 样式表,
我不确定问题出在哪里。这可能与模板的呈现方式有关吗?还是某种路由/映射问题?
这是我的 main.py:
和我的 baseController.py:
下面是 gameController.py 中的两个类。虽然“AllGames”似乎可以正确渲染所有内容,包括正确的 CSS 样式,但“PlayerGames”似乎可以渲染正确的 python 生成的内容和 html,但似乎没有使用任何 CSS。我希望 CSS 与“base.html”一起被继承,因为这是应用 CSS 样式的地方。但是,不知何故,这并没有发生。
这是base.html:
这是 all_games.html,它看起来确实被正确渲染了:
这里是 player_games.html,它与 all_games.html 几乎相同。然而,这似乎是在没有 CSS 的情况下呈现的,尽管 html 和内容显然是正确显示的:
这是 main.css,这可能不是问题,因为它在某些页面上正确呈现:
虽然我怀疑这是否真的与问题相关,但这里也是 authController.py:
我的一些代码基于这个简单的笔记应用程序示例:https ://github.com/fRuiApps/cpfthw/tree/master/webapp2 ,因为我发现它有一个很好、清晰的 MVC 结构。显然我的代码要广泛得多,但是关于如何呈现模板的一些代码或多或少基于示例。但是,该示例并没有受到我似乎遇到的 CSS 样式消失问题的影响。即,当我传递编辑特定注释的请求时,该示例似乎可以正确呈现 CSS。
我已经尝试解决这个问题几个小时了,尽管我付出了所有努力,但我似乎一无所获。由于我通常能够在 StackOverflow 上找到非常有用的信息,因此我认为这可能是发布问题的最佳地点。任何帮助将不胜感激!谢谢!
python - 如何在 webapp2 中导入模型和处理程序以确保新应用实例的快速启动
我希望我的谷歌应用引擎 webapp2 应用尽快启动(创建一个新的应用实例)。我想知道我应该注意哪些明显的减速(我知道......过早的优化,但如果我能提供帮助,我不想在最后进行大规模的重构)
我有一个类似于这样的文件夹层次结构:
在 main.py 中,我使用路由器创建了一个应用程序实例(路由器是从 routes.py 导入的)。routes.py 导入每个处理程序(为每个路由分配一个处理程序)。每个处理程序都会导入几乎所有数据模型。这是否意味着我的应用程序创建新应用程序实例的速度很慢?
我预计到我的项目结束时会有大约 100 个处理程序和 30 个数据模型,尽管其中许多将很少使用。
导入数据模型(从 some_handlers.py 内部)
以下内容是否足够快:
from root_folder.data_model_folder.more_ndb_models import special_model
我应该寻找使用配置/注册表吗?
google-app-engine - 在 requesthandler 类方法中而不是在函数中处理 webapp2 404 错误
我在 Google App Engine (Python) 中使用 webapp2 框架。在webapp2 异常处理:WSGI 应用程序中的异常中,描述了如何处理函数中的 404 错误:
如何在webapp2.RequestHandler
该类的.get()
方法中处理类中的 404 错误?
编辑:
我想调用 a 的原因RequestHandler
是访问会话 ( request.session
)。否则我无法将当前用户传递给 404 错误页面的模板。即在StackOverflow 404 错误页面上,您可以看到您的用户名。我也想在我网站的 404 错误页面上显示当前用户的用户名。这在函数中是可能的还是必须是RequestHandler
?
基于@proppy's answer的正确代码:
python - python中Request.host对象的类型?
我目前正在为我的 GAE 应用程序完成一种个人通用的 URI 解析器。
在全球范围内,一切都很好并且运行非常顺利,但是现在我查看了我的代码,我想知道我用来解析信息的 self.request.host 对象是一个数组还是一个字符串。
我现在这对某些人来说似乎很明显,但我已经在 Google 的网站、python 的网站和 Django 的网站上搜索了有关它的文档,但没有找到任何有关对象类型的相关信息(或者我可能搜索不好)。
因此,如果有人可以告诉我是否有包含对象类型的文档(例如 php 文档 ;-))我会很高兴 ;-)
我现在可以使用 isinstance 来检索它,但我更喜欢 python 自己的文档,因为我必须对我打算使用的许多其他对象做同样的事情。
提前谢谢了。
python - webapp2 和 App Engine 的 SHA 512 密码?
如果您将 webapp2 与 Google App Engine 一起使用,您会看到只有一种方法可以使用“create_user”方法创建用户 [auth/models.py line:364]
但是该方法调用“security.generate_password_hash”方法,其中不可能使用 SHA 512
Q1:我想知道使用 webapp2 和 App Engine Python 创建 SHA 512 密码的最佳方法是什么?
Q2:使用 SHA 512 代替 webapp2 (SHA1) 提供的加密是个好主意,还是足够了?
python - 如何使用 WSGI 将用户从 http 重新路由到 https
原始问题
App Engine SDK 1.6.5
Python 2.7
webapp2
我已经实现了 webapp2 方案来保护页面到 https。问题是,当用户说 http://site/login 而不是 https://site/login 时,由于方案无法识别路线,他们会收到 404 错误。
示例 main.py
我在 https 路由下面添加了另一个路由/控制器来捕获 http 请求:
webapp2.Route(r'/login', RouteLogin)
RouteLogin.py
这可行,但似乎应该有更好的方法来做到这一点。就像在 Apache Web 服务器上使用 htaccess。这太像我喜欢的黑客了。我真的不喜欢我的代码中的硬编码 URL。更不用说 2 个登录请求没什么大不了的,但可能还有其他示例最终导致成本过高。
注意 1:如果您正在查看此解决方案,请注意使用 HTTPS 方案还意味着如果不删除 SCHEME 或配置为 dev 设置的变量,您将无法使用开发控制台。
注意 2:我能够获得一种编程方式来提供 HTTPS 而不是 HTTP。我在下面的评论中走在了正确的轨道上,但它需要一个论点。
webapp2.uri_for('login', _scheme='https')
这将为您提供正确的https://someapp.appspot.com/login网址。不幸的是,它没有解决我的主要问题,即如何处理人们在没有 https 的情况下将 url 键入地址栏中并收到错误,除非我使用上面的 hack。所以我仍在寻找将收入请求路由到 HTPPS 的 WSGI 方式。
编辑:添加注释 1 并澄清标题,我认为很明显我使用的是源代码中的 WSGI 而不是 CGI。
python - 使用 PickleProperty 在 GAE 中存储字典
我有一个 python 字典,我试图通过 pickle 属性存储在 GAE Gql Datastore 中。
我试图按照这个问题和答案, 在 GAE 中存储字典列表
但它不适用于下面的代码。我收到一个错误,表明我的列表有问题
我设置pickle属性和数据模型类如下,
我的代码中有一个函数可以插入数据并将其读出
在我的 get 函数中,我如下调用 m_time_manage() ftn,
我收到这个错误,pickle.loads 和文件结束错误有一些问题......完整的错误是但我不确定如何在 python 中存储字典,
提前感谢您的帮助