使用Flask在Python中构建网站
{% assets "common_css" %}{% endassets %}{% assets "common_js" %}{% endassets %}
现在,我们需要在配置webassets环境__init__.py:
from flask_assets import Environmentfrom webassets.loaders import PythonLoader as PythonAssetsLoaderimport assets# ...assets_env = Environment(app)assets_loader = PythonAssetsLoader(assets)for name, bundle in assets_loader.load_bundles().iteritems():assets_env.register(name, bundle)
如你所见,我使用webassets的PythonLoader从assets模块加载bundle,并将每个bundle注册到环境中。
最后,烧瓶资产扩展提供了一些我们需要的中登记的命令行工具manage.py的文件:
from flask_assets import ManageAssetsfrom example import assets_env# ...manager.add_command("assets", ManageAssets(assets_env))
$ ./manage.py assets rebuild
部署到生产
Nginx充当前端Web服务器,并将提供静态文件。uWSGI充当运行我们的烧瓶应用程序的WSGI服务器。最后,我使用管理程序来管理进程。我喜欢使用Supervisor而不是init.d脚本,因为我经常有其他进程来管理。
$ sudo apt-get install nginx supervisor$ pip install uwsgi
[uwsgi]socket = 127.0.0.1:3031chdir = /path/to/my/appmodule = example:appenv = EXAMPLE_ENV=prod
在Nginx的添加服务器条目/etc/nginx/sites-enabled/example.conf:
最后,配置主管管理uWSGI过程/etc/supervisor/conf.d/example.conf:
[program:example]command=/usr/local/bin/uwsgi --ini /etc/uwsgi.iniautostart=trueautorestart=truestopsignal=INT
并重新启动一切:
$ sudo /etc/init.d/nginx restart$ sudo /etc/init.d/supervisor reload
2更新:修复的错误,并添加数据库初始化