Flask的集中控制

想通过一个统一的机制,同时允许一些公共的逻辑

{% if args["NoUser"] %}
    无用户!
{% else %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>结果查询</title>
<style type="text/css">
    /** 用户名称 **/
    .usr{
        display: inline-block;
        width:100px;
    }
    .time{
        display: inline-block;
        width:200px;
    }
    .cred{
        display: inline-block;
        width:40px;
    }
    .amo{
        display: inline-block;
        width:40px;
    }
</style>

</head>

<body>
    {{ args["strContent"] | safe }}
</body>
</html>
{% endif %}

 

但是感觉不好,于是采用JinJa2的模板继承机制,在base.html中写入一个统一的公共处理:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    {% block pub %}
    <script src="/static/jquery.js" type="text/javascript" charset="gb2312"></script>
    <script type="text/javascript" charset="gb2312">
        $(document).ready(function(){
            alert("hi")
        });	 
    </script>
    {% endblock %}
</head>
<body>
    <div id="content">{% block content %}{% endblock %}</div>
    <div id="footer">
        {% block footer %}
        &copy; Copyright 2008 by <a href="http://domain.invalid/">you</a>.
        {% endblock %}
    </div>
</body>

在实际模板中调用即可:

{% extends "base.html" %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>结果查询</title>
<% block pub %>
    {{ super() }}
<% endblock %>
</head>

<body>
    {{ args["strContent"] | safe }}
</body>
</html>

 

这样,所有页面就能比较统一简洁地处理了。

posted @   jetz  阅读(223)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示