Frozen-Flask网站辅助模块
项目描述
elsa
Elsa可以帮助您构建基于Frozen-Flask的网站并将其部署到GitHub页面。它基于PyLadies.cz仓库中的脚本,并以MIT许可证的条款分发,请参阅LICENSE(不适用于下面的图片)。它需要Python 3。
基本用法
创建您的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选项相对应。
在服务(使用serve或freeze --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
0.1.3
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
0.1.dev2
CNAME路由现在将自动创建
0.1.dev1
从PyLadies.cz的初始实现
项目详细信息
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
构建分布
elsa-0.1.6.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | caa4f03d1060c3ef960d25ad45d4548c6b937fe47aa3ff408f21fcd68dbe9db1 |
|
MD5 | bb2eea68c2147de8e35c2850a19f478e |
|
BLAKE2b-256 | 12ce392e1a35e28bc462fa6a25db1b90d72c5c518f5fc0851e99c3e83a97d418 |
elsa-0.1.6-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0cb4c504e12e9f9e00486aa48ea549ebc2b46d93a175758a62f5644f2562355 |
|
MD5 | 36d27bc371ff0b47f41a0fd97c809ab4 |
|
BLAKE2b-256 | cf910780ba35c0efea00c56b644121e52b8c23c6a0dd7a49dc0691b245b3b1ed |