flask模板的使用

何为模板(jinja模板引擎)

对于一个工程来说,将其划分为事务逻辑与表现逻辑,将表现逻辑(主要是html)移到模板,提高程序的维护性。

视图处理函数通过render_template()跳转到模板,或传入字符串信息(视图函数中通过url路径给name赋值,在模板中变量用{{    }})

#视图处理函数
@app.route('/user/<name>')
def user(name):
    return render_template('user.html', name=name)
#跳转模板内容
<h1>Hello, {{ name }}!</h1>

模板的控制语句

if语句

{% if name %}
    Hello, {{ name }}!
{% else %}
    Hello, Stanger!
{% endif %}

for语句

视图函数

@app.route('/')
def index():
    comit = ["asdf","sadf","rtrt"]
    return render_template('index.html',commits = comit)

模板 (注commits为视图函数render_template('index.html',commits = comit)中的参数)

    <ul>
        {% for i in commits %}
             <li> {{i  }}</li>
        {% endfor %}
    </ul>

效果图

基础模板案例

base.html

{% extends "bootstrap/base.html" %}

{% block title %}Flasky{% endblock %}

{% block head %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
{% endblock %}

{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">Flasky</a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="/">Home</a></li>
            </ul>
        </div>
    </div>
</div>
{% endblock %}

{% block content %}
<div class="container">
    {% block page_content %}{% endblock %}
</div>
{% endblock %}

index.html(主要继承{{%block content% }}界面的内容的 )


{% extends "base.html" %}

{% block title %}Flasky{% endblock %}

{% block page_content %}
<div class="page-header">
    <h1>Hello World!</h1>
</div>
{% endblock %}

链接(反向的路由解析)

url_for(‘index’)#根据函数名找到url路径,主要用于<a href =" ">

flask_Moment本地化日期和时间

#视图函数
moment = Moment(app)

@app.route('/')
def index():
    return render_template('index.html',
                           current_time=datetime.utcnow())

{% block page_content %}
<p>The local date and time is {{ moment(current_time).format('LLL') }}.</p>
<p>That was {{ moment(current_time).fromNow(refresh=True) }}.</p>
{% endblock %}

注:format(‘LLL’)根据客户端电脑时区和区域渲染日期和时间,LLL代表复杂度

fromNow()渲染相对时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值