跳转到主要内容

Frozen-Flask网站辅助模块

项目描述

elsa

Elsa可以帮助您构建基于Frozen-Flask的网站并将其部署到GitHub页面。它基于PyLadies.cz仓库中的脚本,并以MIT许可证的条款分发,请参阅LICENSE(不适用于下面的图片)。它需要Python 3。

Elsa

基本用法

创建您的Flask应用程序并将其传递给elsa.cli()

from flask import Flask

app = Flask(...)

# do stuff with app

if __name__ == '__main__':
    from elsa import cli
    cli(app, base_url='https://example.com')

这将向脚本添加命令行界面,使您能够像这样使用它

python foo.py serve  # serves the site, no freezing, so you can check it quickly
python foo.py freeze  # freezes the site, i.e. makes a HTML snapshot
python foo.py deploy  # deploys the frozen site to GitHub pages

使用--help查看更多选项。

请参阅快速入门教程以获取更多信息。

基于Travis CI的部署

Travis CI(在此上下文中)是一个工具,允许您在每次推送后自动将网站部署到GitHub Pages。您只需要告诉Travis运行Elsa并提供一个GitHub令牌。在Travis上运行的Elsa将冻结网站并将其冻结部署到GitHub Pages。Elsa知道它在Travis上运行,并将使用提供的GitHub令牌获取推送权限。Elsa将在单个提交中将历史记录和该分支的所有手动更改强制推送到gh-pages分支。

以下是一个用于自动部署的示例.travis.yml文件。它假设Elsa和其他需求在requirements.txt中,并且您熟悉Travis CI(因此它不是很详细)

language: python
python:
    - '3.6'
script:
    - 'python foo.py freeze'
env:
  global:
    - secure: "blahblah"  # gem install travis; travis encrypt GITHUB_TOKEN=xyz --add
deploy:
    provider: script
    skip_cleanup: true
    script: 'python foo.py deploy --no-freeze --push'
    on:
        branch: master
        repo: only/yours

测试

要运行测试套件,安装tox并运行它

tox

Elsa使用pytest,如果您熟悉它,可以直接运行它。

其他注意事项

URLs

当您使用不带尾部斜杠的URL(例如https://example.com/foobar)时,GitHub Pages会以错误的Content-Type头(application/octet-stream而不是text/html)提供页面,浏览器会尝试下载它。这就是为什么Elsa不允许这种事情,并将Frozen-Flask的MimetypeMismatchWarning视为错误。请确保使用带有尾部斜杠的URL(例如https://example.com/foobar/)代替,这样Frozen-Flask就会在文件夹中创建index.html,GitHub Pages将使用正确的内容类型。

更改

0.1.6

  • --host选项添加到CLI。它与flask run--host选项相对应。

  • 在服务(使用servefreeze --serve)时,Elsa现在监听Flask的默认地址127.0.0.1。服务器在外部不可见。使用--host=0.0.0.0选择原始、不太安全的行为。(#67

0.1.5

  • 为CLI添加--verbose选项。如果使用,它将所有冻结的URL打印到标准错误。当在Travis CI上冻结大型项目时很有用。(#51

0.1.4

  • cli函数添加invoke_cli选项。如果设置为False,则仅返回CLI以供进一步扩展。(#45

  • 当使用--no-push时,不要删除远程跟踪分支(修复了#41

  • 改进对FrozenFlaskWarning的处理(#37

  • 为部署添加--show-git-push-stderr选项,使部署更详细,这有助于调试问题,但可能很危险,因此默认隐藏了git push的输出。(#37

0.1.3

  • 仅将Frozen-Flask警告视为错误,而不是其他警告(#34

  • deploy添加一个--remote选项,以便使用自定义git远程。

  • 在本地与Travis CI部署之间保持一致,始终删除gh-pages分支的历史记录(实际上修复了#14

0.1.2

  • 安全:推送gh-pages分支时不要显示远程URL。如果您在Travis CI上使用了Elsa 0.1或0.1.1,请撤销您的GitHub令牌,它可能已泄露在日志中。(#25

0.1.1

  • 修复基于Travis CI的部署问题

0.1

  • 添加测试套件

  • 将Frozen-Flask警告视为错误

  • 重要:现在建议在.travis.yml脚本部分运行< span class="docutils literal">freeze,以捕捉Pull Requests等中的问题。

  • 重要:此版本的Elsa将警告您,如果您未明确指定< span class="docutils literal">--push或< span class="docutils literal">--no-push使用< span class="docutils literal">deploy命令。在未来的版本中,它将默认不推送构建的页面。

  • 删除对< span class="docutils literal">sh的依赖,以提高与Windows的兼容性

  • 支持Linux、Mac OS X和Windows

  • 在部署提交之前清除< span class="docutils literal">gh-branch#14

  • 可以通过特殊的POST请求关闭服务器(#21

0.1.dev4

  • 在服务模式下直接设置模板auto_reload标志(#8

0.1.dev3

  • 默认设置TEMPLATES_AUTO_RELOAD(#5

  • 抑制有关CNAME mime类型的错误警告(#7

0.1.dev2

  • CNAME路由现在将自动创建

0.1.dev1

项目详细信息


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

elsa-0.1.6.tar.gz (19.7 KB 查看哈希值

上传时间

构建分布

elsa-0.1.6-py3-none-any.whl (9.3 KB 查看哈希值

上传时间 Python 3

由以下支持:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面