howie6879 / howie6879.github.io

努力就好
https://www.howie6879.com/
9 stars 0 forks source link

4.展示一个页面 | Sanic-For-Pythoneer #54

Open howie6879 opened 3 years ago

howie6879 commented 3 years ago

https://www.howie6879.cn/sanic_book/docs/01_skill/4.%E5%B1%95%E7%A4%BA%E4%B8%80%E4%B8%AA%E9%A1%B5%E9%9D%A2/

展示一个页面 # 前面一章介绍项目结构的时候,很粗略地讲了下如何将rss的文章内容在网页上进行展示。 相信你应该已经了解清楚,sanic是怎么接收请求并返回被请求的资源的,简单来说概括如下: 接收请求 找到对应的路由并执行路由对应的视图函数 Jinja2模板渲染返回视图 路由和视图函数 # 在此我假设你理解 python 中的装饰器,如果你并不清楚,可以看我另写的关于装饰器的介绍,回归正题,还记得第一节中的代码实例么?

!/usr/bin/env python from sanic import Sanic from sanic.response import text app = Sanic() # 此处将路由 / 与视图函数 test 关联起来 @app.route("/") async def test(request): return text('Hello World!') if name == "main": app.run(host="0.0.0.0", port=8000) 在前言介绍里,出现这几个名词 路由 视图函数 视图 ,在上面那段代码中,test 就是视图函数。

这是一段执行逻辑,比如客户端请求 0.0.0.0:8000/ 此时返回的内容就是由test 这个视图函数提供的。 在我看来,视图函数就是一个纽带,它起到承上启下的作用,那么,到底是怎样的承上启下呢?让我们结合代码(sanic0.1.2源码)来分析下: @app.route("/") async def test(request): return text('Hello World!') 这个路由装饰器的作用很简单,就是将 / 这个 uri 与视图函数test关联起来,或许你可以将路由想象成一个 dict,当客户端若请求 0.