冷冻瓶网站的帮助模块

elsa的Python项目详细描述


ELSA

elsa将帮助您构建基于Frozen-Flask的网站并将其部署到github页面。 它基于PyLadies.cz repo中的脚本,并根据mit许可证的条款分发,请参见许可证(不适用于下面的图像)。它需要python 3。

Elsa

基本用法

创建烧瓶应用程序并将其交给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

测试

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

tox

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

进一步说明

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

  • cli函数添加invoke_cli选项。 如果设置为False,则只返回用于进一步扩展的cli。(#45
  • 使用--no-push时不要删除远程跟踪分支(修复#41
  • 改进对FrozenFlaskWarning#37)的处理
  • 添加--show-git-push-stderr选项以使部署更加详细, 这有助于调试问题,但有潜在的危险,因此输出 默认情况下,git push的被隐藏。(#37

0.1.3

  • 仅将冻结的烧瓶警告视为错误,而不是其他警告(#34
  • deploy添加--remote选项以使用自定义git远程
  • 在本地与Travis CI部署上保持一致,始终删除历史记录 gh-pages分支(实际上修复了#14

0.1.2

  • security:在推动gh pages分支时不显示远程url。 如果在travis ci上使用elsa 0.1或0.1.1,请撤消github 令牌,可能是在日志中泄露的。(#25

0.1.1

  • 解决基于travis ci的部署问题

0.1

  • 添加测试套件
  • 将冷冻烧瓶警告视为错误
  • 重要:现在建议在^{tt4}中运行freeze。$ script节以捕获拉取请求等中的问题。
  • 重要信息:如果使用^{tt21},此版本的ELSA将发出警告$ 未显式指定--push--no-push的命令。 在将来的版本中,它将切换到not按 默认是的。
  • 删除对sh的依赖项以提高与Windows的兼容性
  • 支持Linux、Mac OS X和Windows
  • 在部署提交(#14)之前,gh-branch被清除
  • 可以通过特殊的post请求(#21)关闭服务器

0.1.dev4

  • 在服务模式下(#8)直接设置模板自动重新加载标志

0.1.dev3

  • 设置模板默认情况下自动重新加载(#5
  • 抑制有关cname mime类型(#7)的虚假警告

0.1.dev2

  • CNAME路由现在自动创建

0.1.dev1

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java New Relic cpu使用情况Heroku应用程序   数学为什么在Java中,两个相同的数字以略微不同的形式书写会产生两种不同的结果   java如何用不同的宽度在彼此内部绘制圆?   键入数组时for循环和for each循环之间的java差异   java选定菜单文本颜色   java CollappingToolbarLayout EnterAlways Collapsed不起作用   java字符串处理中间3个字母   用于生成XML签名的每个元素上的java SOAP头xmlns:ds   java写入文件/大量字节失败   java以编程方式读取队列的参数   java如何使用webdriver在弹出消息中选择元素?   java Json数组对象通过控制器[Spring Boot]传递到模型   java如何创建应用程序。生成EAR文件时代码中的xml?   java我尝试将一些值设置为整数数组,但这些值不会保持不变   java Android Studio:缺少SDK   如何使用java在RESTWeb服务中下载不同类型的文件   Java堆与平衡树   java需要一种在扫雷游戏中随机放置地雷的方法的帮助   java如何在适配器类外部更新RecyclerView适配器