一、Sanic.url_for,支持的参数也是挺多,但是实际使用过程中,使用url_for一般只用于构建路由
1、使 url_for 生成路由
在Sanic中,可以使使用 url_for 根据终结点来生成路由,这样就不用关心改代码时路由有没有被改,只要函数名没被改就行
使用时要记住的其他事项 url_for :
1.1、传递给的关键字参数 url_for 非请求参数将包含在URL的查询字符串中。例如:
app.url_for('post_handler', post_id=5, arg_one='one', arg_two='two') =》 /posts/5?arg_one=one&arg_two=two
1.2、多值参数可以传递给 url_for . 例如:
app.url_for('post_handler', post_id=5, arg_one=['one', 'two']) =》 /posts/5?arg_one=one&arg_one=two
2、url_for也可以用来为静态文件生成url
Sanic支持使用 url_for 方法来生成静态文件URL。如果静态url指向一个目录, filename 参数 url_for 可以忽略,以下是官网案例
二:静态文件
静态文件和目录(如图像文件)在注册到 app.static() 方法。该方法接受一个端点URL和一个文件名。然后,指定的文件将可以通过给定的端点访问。当提供静态目录时,Sanic不提供目录索引。
2.1、虚拟主机
app.static() 方法也支持 虚拟主机 . 您可以为静态文件提供特定的 虚拟主机 。例如
2.2、流式处理大文件
在某些情况下,可以使用Sanic服务器提供大文件(例如:视频、图像等)。可以选择使用 流文件 而不是直接下载。
2.3、当stream_large_files 是 True ,Sanic将使用 file_stream() 而不是 file() 提供静态文件。这将使用 1KB 作为默认块大小。如果需要,还可以使用自定义块大小