flask之页面布局

这篇博客介绍了Flask框架中实现页面布局的方法,包括url_for的使用,如静态文件引入和定义路由;深入讲解了block块的概念,如何在子模板中继承并覆盖父模板内容;探讨了包含页和宏macro的应用,以及if判断和for循环在模板中的实践。内容适合Python web开发者学习。
摘要由CSDN通过智能技术生成

一、url_for

1.静态文件引入 

{ {  url_for('static',filename='文件路径') }}

<link rel="shortcut icon" href="{
    { url_for('static',filename='base/images/logo.png') }}">

2.定义路由

{ { url_for('模块名.视图名',变量=参数) }}

<a  href="{
    { url_for('home.user',page=1) }}">会员</a>

 

二、块block

1.admin.html 添加块

{%  block  数据块名称  %} ...{%  endblock %}

2.继承父模板

{% extends "admin/admin.html" %}

3.块覆盖的情况super

我们既不想不覆盖通用模板的内容,又想在其基础上,增加一些东西,这也是可以的。

<footer>
    {% block footer %}
    <p>Posted:Bikmin</p>
        <p>Contact with:<a href="someone@example.com">someone@example.com</a> </p>
    {% endblock %}
</footer>

如果我们不再自定义块,就会使用base.html通用模板的内容,效果如下

  

觉得这个模板还行,不想覆盖,还想在这个基础上再添加些东西,想要上面添加一条水平线作为分隔符,该怎么做呢

做法是,重新定义块,但是需要用到super()函数

{% block footer %}
    <hr>
    {
    { super() }}
{% endblock %}

{ { super() }} 就表示了通用模板里的内容

 

三、 包含页

如果有一些HTML代码是经常用到的固定的,为了避免整个HTML文档看起来很拥挤,内容嘈杂。可以将这一部分的代码,保存为了一个HTML模板,然后要用的时候,再用

{% include 'includes/head.html' %}

  

四、宏macro

通过做成宏,可以将一些参数修改成我们想要的默认值,然后调用的时候就像函数一样调用,很方便。

# 定义宏
{% macro input(name,value='',type='text',size=20) %}
    <input type=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值