冷冻瓶网站的帮助模块
elsa的Python项目详细描述
ELSA
elsa将帮助您构建基于Frozen-Flask的网站并将其部署到github页面。 它基于PyLadies.cz repo中的脚本,并根据mit许可证的条款分发,请参见许可证(不适用于下面的图像)。它需要python 3。
基本用法
创建烧瓶应用程序并将其交给elsa.cli():
fromflaskimportFlaskapp=Flask(...)# do stuff with appif__name__=='__main__':fromelsaimportclicli(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查看更多选项。
跟随quickstart tutorial 更多信息。
基于travis ci的部署
travis ci(在本文中)是一个工具,允许您在每次推送之后自动将站点部署到github页面。 你只要告诉特拉维斯运行elsa并提供github令牌。 travis上的elsa将冻结站点并将其部署到github页面。 elsa知道它正在travis上运行,并将使用提供的github令牌获得推送权限。 elsa将在一次提交中将force推送到gh-pages分支,重写该分支的历史记录和所有手动更改。
下面是自动部署的示例.travis.yml文件。它假设elsa和其他需求在requirements.txt中,并且您熟悉travis ci(所以它不是很详细):
language:pythonpython:-'3.6'script:-'pythonfoo.pyfreeze'env:global:-secure:"blahblah"# gem install travis; travis encrypt GITHUB_TOKEN=xyz --adddeploy:provider:scriptskip_cleanup:truescript:'pythonfoo.pydeploy--no-freeze--push'on:branch:masterrepo:only/yours
进一步说明
url
当您使用没有尾随斜杠的url(例如https://example.com/foobar)时,github页面将为具有错误内容类型头的页面提供服务 (application/octet-stream而不是text/html)浏览器将尝试下载它。 这就是为什么elsa不允许这样的事情发生,并将冷冻烧瓶中的MimetypeMismatchWarning视为错误。 请确保使用带有尾随斜杠(例如https://example.com/foobar/)的url,这样冻结的flask将在文件夹中创建index.html,github页面将使用正确的内容类型。
更改
0.1.5
- 为cli添加--verbose选项。如果使用,它会打印所有冻结的url 标准误差。在Travis CI上冻结大型项目时非常有用。(#51)
0.1.4
0.1.3
0.1.2
- security:在推动gh pages分支时不显示远程url。 如果在travis ci上使用elsa 0.1或0.1.1,请撤消github 令牌,可能是在日志中泄露的。(#25)
0.1.1
- 解决基于travis ci的部署问题
0.1
0.1.dev4
- 在服务模式下(#8)直接设置模板自动重新加载标志
0.1.dev2
- CNAME路由现在自动创建
0.1.dev1
- 初始实施日期 PyLadies.cz