资讯专栏INFORMATION COLUMN

Tornado-05、tornado模版

dreamGong / 1538人阅读

摘要:模板模板的基本了解准备工作自身提供了一个轻量级快速并且灵活的模板语言在模块中。

Tornado模板

1.模板的基本了解

准备工作

Tornado自身提供了一个轻量级、快速并且灵活的模板语言在tornado.template模块中。

模板就是格式固定的网页:格式是固定的,内容是变化的模板是一个允许嵌入Python代码片段的HTML文件

在tornado文件夹下新建一个lesson4文件夹 在该文件夹下新建一个start1.py文件 先添加一些基本内容
然后按下列步骤操作
1、在Application的参数中添加template_path 配置,指定模板的路径和静态文件的路径

template_path="templates",
static_path="static",

2、在lesson4文件夹下新建template文件夹(用来存放html文件)
在lesson4文件夹下新建static文件夹(用来存放图片,css,js等静态文件)

3、使用render方法渲染模板 添加以下代码

(r"/",IndexHandler),  # 添加路由

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("index.html")

这段代码告诉Tornado在templates文件夹下找到一个名为index.html 的文件,读取其中的内容,并且发送给浏览器

4、在templates文件夹下新建一个index.html文件
在body中添加下列代码

hello boys and girls!

运行后显示的结果


2.模板中的符号
{{   }}   表达式用双大括号包围,内容可以是任何python表达式 ,在双大括号中的单词是占位符
{%   %}   模板控制语句以{%  %}包围
{# #} 模版注释格式

双大括号中放置变量名或表达式,变量名与传入的关键字参数名要相同
在templates中新建IndexHandler.html
并在这个文件的body中添加以下代码

用户名

密码

在templates中新建index2.html文件
并在body中加入以下代码

欢迎用户 {{ username }}登录

处理器文件

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("index1.html")

    def post(self):
        username = self.get_argument("name","no")
        self.render("index2.html",username=username)


tornado的模板处理已经十分方便,在{{}}中可以传入任意的python表达式:

#为了测试方便,新建一个简单的路由
(r"/temp",TempHandler),
class TempHandler(tornado.web.RequestHandler):
    def get(self):
        username = self.get_argument("name","no")
        self.render("temp.html",username=username)

接下来我们在index.html文件中添加以下代码

 hello boys and girls!
{{ 10+27 }}
{{ time.time() }}
{{ haha() }}

在start1.py中的TempHandler中添加以下代码

    def haha(self):
        return "这里是tornado"

    def get(self):
        username = self.get_argument("name","no")
        import time
        li = ["a","b","c","d"]
        self.render("index.html",
                    username=username,
                    time=time,
                    haha=self.haha,
                    li=li
                    )


3.控制语句

控制语句的大部分就像对应的Python语句一样工作

控制语句的返回以最近的{% end %} 结束

if条件判断

{% if condition %}
     ...
{% elif condition %}
     ...
{% else %}
     ...
{% end %}

例子:

{% if username!="no" %}
    欢迎用户 {{ username }} 登录
{% else %}
    您还没有登录
{% end %}


for循环

{% for var in expr %}  # 注意在模版中的控制语句都不需要加冒号
     ...
{% end %}

在html文件中的写法


{% for i in li%} {{ i }}
{% end %}

以上就是模板的基本知识,我们在后面还会深入学习。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/52044.html

相关文章

  • Tornado-05tornado模版

    摘要:模板模板的基本了解准备工作自身提供了一个轻量级快速并且灵活的模板语言在模块中。 Tornado模板 1.模板的基本了解 准备工作 Tornado自身提供了一个轻量级、快速并且灵活的模板语言在tornado.template模块中。 模板就是格式固定的网页:格式是固定的,内容是变化的模板是一个允许嵌入Python代码片段的HTML文件 在tornado文件夹下新建一个lesson4文件夹...

    ccj659 评论0 收藏0
  • tornado template默认压缩空白字符导致coffee无法正确缩进

    摘要:第一次使用在里面写的时候我被结果惊呆了大家知道的偷懒写法是直接在里面开工但是的模版无情的删除了所有缩进对于和文件来说这就是压缩打开的一看如果是和结尾的模版文件渲染就会默认开启当时很沮丧不过下一秒钟我们就想到了解决方法把文件名改为不就好了你想 第一次使用在 tornado 里面写 coffeescript 的时候, 我被结果惊呆了. 大家知道 coffeescript 的偷懒写法是直接...

    BicycleWarrior 评论0 收藏0
  • Tornado Demo 之 chatdemo 不完全解读

    摘要:清楚了以上流程,我们直接来看函数主要用作初始化应用监听端口以及启动。其中就是保存聊天室所有聊天消息的结构。关于的解读我会放到阅读源码时讲。然后把消息加到缓存里,如果缓存大于限制则取最新的条消息。 tornado 源码自带了丰富的 demo ,这篇文章主要分析 demo 中的聊天室应用: chatdemo 首先看 chatdemo 的目录结构: ├── chatdemo.py ├── ...

    TesterHome 评论0 收藏0
  • jupyter安装总结

    摘要:总结一下与大家分享。我是系统,我是通过安装的。后来导致我执行也失败了,最后将升级了一把,然后卸载,再重新安装,工作正常了。安装还有权限问题,我最后是通过权限安装的。 前段时间一直使用pycharm写pandas程序,对于大数据开发而言,开发一般是走一步想一步,pycharm不适合。网上推荐使用jupyter notebook,它是一个web版的编辑器,原来是IPython的一部分,后来...

    dcr309duan 评论0 收藏0

发表评论

0条评论

dreamGong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<