冷冻瓶网站的帮助模块

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 AudioEffect不支持双簧管?   增加内存后出现java IntelliJ堆大小错误   在unix/linux中工作的java中将unicode字符串转换为ASCII   java是否缺少正确对齐输出的值?   java Spring 3 MVC:动态表单中的onetomany(创建/更新时添加/删除)   java在接口中创建两个通用参数   lambda使用Java 8从嵌套列表中使用forEach查找项的替代方法是什么?   Java正则表达式匹配10位电话号码,中间有空格   linux将log4j外部化。使用命令行Java的属性文件   带有SSL的java简单RMI服务器   java无法为事务[…]打开JPA EntityManager无法获取驱动程序类“null”和URL“null”的连接   Android设备上的java Oauth Foursquare   for循环的ImageButton名称的java骰子模拟浓缩   java有没有简单的1d条形码阅读器?   如何在调用resultset后解决“无效字符串或缓冲区长度”。从java到访问mdb的getString()连接   在Java8中,是否可以使用JVM参数来控制何时(或在什么条件下)卸载类?