# 开发历程(Development)

首先要明确的是,集成到 Sanic 中的 Web 服务器不只是一个开发服务器。

只要您没有处于调试模式,它就可以投入生产。

# 调试模式(Debug mode)

通过设置调试模式,Sanic 将会输出更为详细的输出内容,并激活自动重载功能。

from sanic import Sanic
from sanic.response import json
app = Sanic(__name__)
@app.route("/")
async def hello_world(request):
    return json({"hello": "world"})
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=1234, debug=True)

警告

Sanic 的调试模式会降低服务器的性能,因此建议只在开发环境中启用它。

# 自动重载(Automatic Reloader)

在调试模式之外,Sanic 还提供了一种手动开关自动重载的方法。auto_reload 参数将开启或关闭自动重载功能。

app.run(auto_reload=True)

如果您有额外的目录想要在文件保存时自动重新加载(例如,HTML 模板的目录),您可以在运行时添加它。

app.run(auto_reload=True, reload_dir="/path/to/templates")
# or multiple directories
app.run(auto_reload=True, reload_dir=["/path/to/one", "/path/to/two"])

# 两全其美(Best of both worlds)

v22.3 新特征

如果您想在调试模式中使用自动重载功能,您可以设置 dev=True,这相当于您开启了 调试模式 + 自动重载

app.run(dev=True)

# 客户端(CLI)

值得注意的是,所有这些在 Sanic CLI 中都有对应的内容:

  Development:
    --debug                        在调试模式下运行服务器。它包括调试日志、关于异常的附加上下文,
                                   以及对生产不安全但有助于调试问题的其他设置。
    -r, --reload, --auto-reload    监听文件的修改,并在修改时重新加载
    -R PATH, --reload-dir PATH     更改时需要监听和重新加载的额外目录
    -d, --dev                      调试模式 + 自动重载
MIT Licensed
Copyright © 2018-present Sanic Community Organization

~ Made with ❤️ and ☕️ ~