问题标签 [bottle]

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 投票
1 回答
903 浏览

python - 使用 BottlePy/GAE 进行浏览器缓存

我正在我的网站上运行 Google Page Speed,该网站位于 Google App Engine 上的 Python/Bottle 中。

它的意思是:'以下可缓存资源的新鲜度很短。为以下资源指定至少一周后的到期时间:'

然后继续列出我的大部分静态文件(图像、css、js),并说要指定一个缓存超过一周。

在我的 app.yaml 文件中,我有这个: default_expiration: "21d 1h" 这似乎没有做任何事情。

有没有人对我如何缓存它正在谈论的文件有任何想法,或者这是在 AppEngine 上使用 Bottle 的问题?

0 投票
3 回答
2210 浏览

python - Loading a file just once on initialization of python script using Mod_WSGI and Bottle

I am pretty new to Python, Mod_WSGI and Bottle. My main problem is that when the process is run using Mod_WSGI I want it to load a file once on initialization. With running a script in terminal you would just use if __name__ == '__main__'

I need it to load the file once on initialization (or when first called) so that any subsequent calls to the process does not require the file to be reloaded. I am unsure of how to do this.

The following code is run whenever someone goes to the recommend page

How do I do the first 4 lines (ones involving parser) just on initialization so that I just need to call the res.recommend() whenever the recommend page is accessed?

Any help is appreciated, Mo

0 投票
1 回答
1087 浏览

python - 在 Bottle 驱动的应用程序中,我在哪里存储每次请求时加载的数据?

我有一个简单的 Bottle 应用程序,它将其配置存储在一个文本文件中。自然,我需要该配置在应用程序的几乎每个处理程序中都可用,并且我希望在每次请求时都重新加载它。

在 Flask 中,我可以将配置文件加载到一个ConfigParser实例中before_request,并将对它的引用放入g对象的属性中,就像 Flask 文档中描述的作为连接 SQLite的一种方式一样。然后该g对象将在每个处理程序中可用:

另一方面,在 Bottle 中,线程本地被认为是一件坏事,存储数据库连接的建议方法是编写一个插件,该插件使用巧妙的技巧分析处理程序的签名。虽然 SQLite 已经解决了这个问题,但对于其他一些任意的每个请求数据,情况并非如此。

坦率地说,我不敢相信我应该编写 60 行代码来完成如此简单的任务,所以我想我一定是遗漏了一些东西。

有任何想法吗?

0 投票
1 回答
921 浏览

python - MiddleStorm 带瓶子的中间件

您如何将MiddleStorm中间件与瓶子一起使用?我按照这个例子,用 MiddleStorm 替换了 SessionMiddleware,但我无法让它工作。

我在控制台中收到此错误:

如果我将 myapp 的行更改为:

我在网页上收到此错误:

编辑:安装了瓶子、风暴、中间风暴

edit2:如果我将 myapp 行更改为 myapp = MiddleStorm(dafault_app, db) 我收到此错误:

edit3:使用@zeekay 代码我仍然收到此错误:

0 投票
1 回答
1517 浏览

python - Bottle Python 中的 SQL Alchemy 或 SQL 对象

嗨,我是刚开始使用 bottle.py 框架的新手,有人有我们可以学习的示例 CRUD 应用程序吗?其次,两个包装纸中的哪一个在瓶子中运行得更快?谢谢。

0 投票
1 回答
765 浏览

python - 如何使用 Bottle 的 SimpleTemplate 引擎创建一个可以在多个模板中使用的宏?

我需要在我的 Bottle 应用程序的某些地方格式化一个链接。以前所有链接都在一个 SimpleTemplate 文件中,我定义了一个如下所示的宏:

无论我需要在哪里格式化指向 的链接obj,我都使用:

现在我需要在几个模板中使用这些链接的格式。我将模板定义移动到一个名为 的单独文件macros.html中,然后尝试%include将此文件放入需要宏的模板中:

但是,Bottle 无法解析mylink这种布局中的名称。

我知道我可以这样做:

但是,我不愿意这样做,因为我觉得这不是很快(我在任何给定页面上都有很多格式化链接)。

我错过了其他一些选择吗?

0 投票
2 回答
9374 浏览

javascript - 我可以将javascript与瓶子(框架)一起使用吗?

我正在尝试使用瓶子(python web 框架)显示一个 html 页面。该页面嵌入了 javascript,但是当我用瓶子提供它时它不会显示它。

我正在使用的 JS 是EditArea,我可以按照自己的方式清理它,并将其放入一个 html 页面,当我在 chrome 中打开页面时该页面会正确显示。但是当我使用瓶子时:

并转到http://localhost:8080/edit或 /edit_area,我看到的页面没有任何花哨的 javascript 功能。

最终我想把它连接起来(EditArea 是文本区域,我将使用它来接受希望我能够运行的代码......但这是一个单独的问题......),但现在一切都应该要做的是显示页面和javascript。JS 尽可能简单地放在 html 中。这两个块使用不同的文件,但它们只是同一个 html 文件的副本,一个带有 .html 扩展名,另一个带有 .tpl 扩展名。

...然后就是所有的 JS 代码(不是我写的)。

在启动我导入的服务器的文件中:路由、运行、调试、模板、请求、send_file 和来自瓶的错误;和 sqlite3;但仅此而已。还有什么我应该包括的吗?

我查看了瓶子文档和其他一些地方,这要么是非常明显的事情,没有人会费心写下来,要么是人们不做的事情......

我在看睡衣(它不断提出涉及“python”和“javascript”的搜索查询的不同组合),但它看起来只是将 python 转换为 javascript。我不认为这就是我想要的 b/c javascript 已经是 javascript ...

感谢您提供的任何见解。

0 投票
3 回答
18621 浏览

javascript - 如何将 javascript 或 css 文件加载到 BottlePy 模板中?

我正在尝试使用 BottlePy 返回一个 html 模板。这很好用。但是,如果我在我的 tpl 文件中插入这样的 javascript 文件:

我收到 404 错误。 (加载资源失败:服务器响应状态为 404(未找到))

有谁知道如何解决这个问题?

这是我的脚本文件:

这就是模板文件,位于“./views”子文件夹中。

也许它是来自开发服务器的“rootPath/js/main.js”,它在其中查找我的 js 文件?

文件的结构是:

谢谢。

0 投票
2 回答
1540 浏览

python - 如何以及在何处部署我的 Python 和 BottlePy 应用程序

好的,所以我在使用 NLTK 包的 Bottle 中制作了这个应用程序。它在我安装了所有必需库的计算机上运行良好,但是,我无法让它在 Google 的 App Engine 上运行。它给出了这些错误:

我四处搜索并认为这是 GAE 的限制,所以我尝试使用 Alwaysdata 并在那里托管我的应用程序。但是在那里我遇到了未安装 YAML 模块的问题。我试图安装它,但访问被拒绝。

所以现在我被卡住了。这是我经常遇到的问题。在我的电脑上一切正常,但我无法让它在线工作。这是因为 GAE 限制,alwaysdata 限制吗?所以我想我在问我在哪里以及如何最好地部署?

当我租用自己的服务器并在那里拥有完全访问权限时会更容易吗?这是否像我自己的电脑一样工作,我可以安装所有东西?

如果我需要提供更多信息,请告诉我,我很无能为力。

0 投票
3 回答
8617 浏览

python - Bottle.py 错误路由

Bottle.py 附带一个导入来处理抛出的 HTTPErrors 和路由到函数。

首先,文档声称我可以(几个例子也是如此):

但是,当导入此语句时,错误未解决,但在运行应用程序时会忽略这一点,只是将我引导到通用错误页面。

我找到了解决这个问题的方法:

但是这段代码阻止了我将我的错误全部嵌入到一个单独的模块中,以控制如果我将它们保存在我的 main.py 模块中会出现的问题,因为第一个参数必须是一个瓶子实例。

所以我的问题:

  1. 有没有其他人经历过这个?

  2. 为什么错误似乎只在我的情况下解决(我从pip install bottle 安装)?

  3. 有没有一种无缝的方法可以将我的错误路由从单独的 python 模块导入到主应用程序中?