问题标签 [web.py]

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.

0 投票
4 回答
12018 浏览

python - 如何在 webpy 中提供文件?

我正在使用 webpy 框架叉。我想在其中一个请求上提供静态文件。webpy框架中是否有特殊方法,或者我只需要读取并返回该文件?

0 投票
3 回答
6392 浏览

python - webapp 和 web.py 的区别

Webpy.org -谁使用 web.py?

“[web.py 启发了我们在 FriendFeed [和] App Engine 附带的 webapp 框架中使用的] web 框架......”
— Brett Taylor,FriendFeed 的联合创始人和 Google App Engine 的原始技术负责人

适用于 Python 的 Google App Engine 入门

嵌入在代码中的 HTML 混乱且难以维护。最好使用模板系统... ...为方便起见,webapp 模块包含 Django 的模板引擎

问题:
webapp和webpy有什么区别?
当 Appengine 已经提供 webapp 时,捆绑 webpy 是否值得?

我所知道的:
1. Web.py 有它自己的模板语言(它看起来比 Django 的更容易)
2. 目前,我考虑使用 web.py 的唯一原因是避免使用(和学习)Django在 appengine 上进行模板化。
3. 这个问题开头的引述
4. 我已经 通过 相关 问题和谷歌上的 webapp 文档
5. 我注意到stackprinter使用 web.py 并且托管在 appengine 上。

0 投票
1 回答
6073 浏览

python - Webpy:如何将http状态码设置为300

也许这是一个愚蠢的问题,但我无法弄清楚如何在 webpy 中获取 http 状态代码。

在文档中,我可以看到主要状态代码的类型列表,但是是否有一个通用函数来设置状态代码?

我正在尝试实现一个unAPI服务器,它需要回复一个300 Multiple Choices只有一个标识符的请求。更多信息在这里

谢谢!

编辑:我刚刚发现我可以通过web.ctx做来设置它

web.ctx.status = '300 Multiple Choices'

这是最好的解决方案吗?

0 投票
1 回答
655 浏览

python - lighttpd,mod_rewrite,web.py

我对 lighttpd 和 web.py 有一个小问题。它在 Apache2 上运行得非常好,但在 lighttpd 上有一个小问题。

这是我的 web.py 的 lighttpd 配置

和一个示例 web.py 来演示我如何定义 URL。

将浏览器重定向到example.org/pageURL 时会出现此问题。Apache2 重定向到example.org/page但 lighttpd 重定向到example.org/code.py/page. 我该如何解决这个小问题?我找到了一个解决方案,所以如果我写raise web.seeother(web.ctx.homedomain+'/page')的一切都很好,但我想知道它是否可以在 lighttpd 配置文件中解决,而不是接触 web.py 代码。

谢谢,

0 投票
0 回答
523 浏览

apache - 使用 web.py 和 extjs 处理 url

我正在将一个程序从 turbogears 移植到 web.py/mod_wsgi 并取得了相当大的成功。我已经设置了类似于 turbogears 的 URL 处理,但是我在 extjs 2.0 如何处理 URL 方面遇到了一点小烦恼。

假设我的应用程序名为“ack”,我可以通过访问http://localhost/ackhttp://localhost/ack/来测试它(注意尾部斜杠是唯一的区别)。从 web.py 的角度来看,这无关紧要。但是,在我使用的用 extjs 编写的模板中,我指定 url 以使用 JSON 查询来自应用程序的信息(下面的示例)。

这就是麻烦。如果我使用尾部斜杠访问我的应用程序,那么 extjs 会形成一个类似http://localhost/ack/nameList的 url 查询,它会调用我的应用程序的函数并取回正确的数据。如果地址栏中没有斜杠,extjs 会将 url 构建为http://localhost/nameList,它永远不会进入我的应用程序,并且实际上每个 JSON 查询都会失败(如我的 firebug 控制台中所示)。

我假设 extjs 只是扯掉了最后一个斜杠后面的任何东西来构建 url,但我想解决这个问题。现在我只是告诉我的用户确保他们运行带有斜杠的应用程序,但这似乎是一件容易处理的事情。我只是不知道如何在 extjs 中。

0 投票
3 回答
1440 浏览

python - web.py/pythonpath 混淆

我把 web.py 作为一个轻量级的 web 框架玩弄。当我尝试将页面的实际实现移动到单独的文件而不是根文件时遇到问题。作为演示,我的 core.py 文件如下所示:

我将我的实现移动到与 core.py 处于同一级别的名为 index.py 的文件中。我的实现如下所示:

但是,每当我运行我的应用程序时,都会出现错误:

<type 'exceptions.KeyError'> at /

谁能告诉我发生了什么事?

0 投票
3 回答
2733 浏览

python - 从 web.py url 访问文件

我正在将 web.py 用于一个小项目,并且我希望用户能够在服务器上的 /files 目录中访问文件。我似乎无法找到如何在 GET 请求中返回文件,所以我不知道如何做到这一点。

本质上想要做的是:

有没有一种简单的方法可以从 GET 请求中返回文件?

0 投票
2 回答
1385 浏览

python - 在 mod_wsgi 上保持 web.py 应用程序的并发性

对不起,如果这没有意义。如果需要澄清,请发表评论。

我正在 web.py 中编写一个小文件上传应用程序,我正在使用 mod_wsgi + apache 进行部署。我的会话管理一直有问题,想澄清一下 web.py 中的线程是如何工作的。

本质上,当有人访问我的页面时,我将代码嵌入到我呈现的 html 页面的隐藏字段中。然后通过包含文件和代码的标准 POST 请求完成文件上传。然后,我通过在文件上传 POST 方法中更新文件并使用对不同类的 GET 请求获取它来检索文件的进度。“会话”(为它相当幼稚而道歉)存储在这样的会话对象中:

这些会话都保存在我的应用程序脚本中的全局字典中,然后使用我的代码(从之前的代码)作为键进行访问。

出于某种原因,我的进度似乎保持在 0 并且永远不会增加。我已经调试了几个小时,我发现上传类和进度类引用的两个会话对象不一样。然而,这两个代码(据我所知)是相等的。这让我发疯,因为它在我本地机器上的 web.py 测试服务器上没有任何问题。

编辑:经过一些研究,似乎每个请求都会复制字典。我尝试将字典放在另一个字典中并导入,但这不起作用。除了使用数据库来“分离”会话字典还有其他方法吗?

0 投票
1 回答
885 浏览

python - web.py + mod_wsgi 文件上传问题

我正在开发一个用于上传文件的 web.py 应用程序,但我的部署确实存在问题。基本上我想给用户一个“上传百分比”,但是当部署在 mod_wsgi 上时,这似乎很混乱。主要上传工作如下:

“会话”是一个全局字典,其中包含跟踪会话的对象。为了获得当前进度,我每秒通过来自客户端的 GET 请求获取给定会话的当前进度。

目前的问题是这仅适用于小型上传。似乎任何超过 100kb 的东西都不会增加进度变量。如果放置在循环之外(或在 read() 被调用之前)或者文件非常小,则该值肯定会增加。

wsgi 是否有可能为更大的文件打开新线程,从而使我的全局计数器仅位于上传线程的本地?会不会是别的东西。

0 投票
1 回答
835 浏览

python - 使用 web.webopenid 和 web.py 对用户进行身份验证

我有一个 web.py 应用程序,我正在本地通过 mod_wsgi (http://localhost/...) 运行。我已经到了为我的应用程序添加身份验证的地步,并想使用 web.py 的内置模块。我从这里找到的一个简短示例开始:http: //log.liminastudio.com/programming/howto-use-openid-with-web-py

这在终端中运行并进入http://localhost:8080/运行良好。另一个示例http://c-farrell.blogspot.com/2010/11/usrbinenv-pythonimport-webfrom-web.html使用了类似的技术,但对我来说更有意义。

这是我有点迷路的地方。据我所知,传递给的参数form是登录后的返回 URL。例如,如果我输入“http://www.yahoo.com/”,它会在每次登录尝试后将我带到那里。我觉得这应该指向我自己的控制器并在那里检查,但约定似乎是使用 web.webopenid.host 控制器,我猜它处理 id 并返回到基本的“/”url。我想我到了那里,但返回的状态总是None.

从我收集的信息来看,这要么是代码问题,要么是我的 apache 配置中的某些东西使身份验证无法正常工作。在 web.webopenid 中,该库在与 Web 服务器相同的目录中创建一个 .openid_secret_key 文件。当我运行示例代码时,它会被创建。当我通过 apache 运行我的代码时,它不会(至少不在 cgi-bin 中。其他地方?)无论如何,如果这个文件不是每次都生成或重新生成,它将阻止我登录。我相信这是一个 apache 问题,因为我尝试通过 web.py 网络服务器运行我的应用程序,并且我确实创建了文件并且我可以进行身份​​验证。我能得出的结论是这个文件没有被写入,每个后续查询都会尝试一个新文件,我永远无法进行身份验证。