Flask+Bootstrap实战一

项目教程地址:

Youtobe源地址:Bootstrap Flask
Bilibili搬运:哔哩哔哩


新建一个HELLO WORLD

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
	return "hello world"

if __name__ == '__main__':
	app.run(debug=True)

使用render_template

使用render_template的作用就是路由函数一次性返回过大的模块,而在templates文件夹下进行操作

<html>
	<head>
	</head>
	<body>
		<h1>hello world</h1>
	</body>
</html>

运行结果如下

在index.html中传参数是通过这种方式进行的<p>{{title}}</p>

利用if和循环语句控制templates渲染

html中的if语句可以着么写

<head>
	{% if title %}
	<title>{{title}}</title>
	{% else %}
	<title> home </title>
	{% endif %}
</head>

如果是要写一个for循环的话

这里注意,如果是写成{}花括号,在模板进行渲染的时候顺序就会变乱

paragraphs = [
		"section 1",
		"section 2",
		"section 3"
	]
return render_template("index.html", data = paragraphs)

index模板如下

<body>
	<h1>hello world</h1>
	{% for i in data %}
	 <p>{{ i }}</p>
	{% endfor %}
</body>

模板的继承和引用

模板继承

在网页的设计开发中,往往是好多个页面共用某些个元素,但是没有必要把他们都copy,所以这时候就需要用到模板的继承了,这里也是分了父模板和子模板。

父模板往往用base.html来表示,子模版这里还是用index.html。模板的继承部分用extends关键字表示,还可以用block进行具体的修改,下面是在父模板中的部分

<body>
	<h3><a href="/">Flask App</a></h3>
	<hr>
	{% block content %}
	{% endblock %}
</body>

在子模板中,写成这样,将原先的title文字渲染出来,注意这里是endblock中间没有空格

{% extends "base.html" %}
{% block content %}
 <p>{{ title }}</p>
{% endblock %}

最后的显示结果如下

模板引用

这个就是比如一个模块需要很多次引用,就可以给他单独新建一个html文件,然后使用include关键字进行引用

这里新建一个navbar.html文件,之后原先在这里的内容更换一下

<body>
	{% include "navbar.html" %}
	{% block content %}
	{% endblock %}
</body>

就可以单独在navbar.html文件当中进行修改了

利用Flaks-bootstrap来优化布局

需要pip安装flask-bootstrap,因为它不支持bootstrap4,所以在用的都是bootstrap3。

1. Flask-Bootstrap的教程文档

2. Bootstrap的组件库


如何使用flask-bootstrap的组件库

首先,导入官方文档的实例程序,修改我们的base.html文件

{% extends "bootstrap/base.html" %}
{% block title %}This is an example page{% endblock %}

{% block navbar %}
<div class="navbar navbar-fixed-top">
  <!-- ... -->
</div>
{% endblock %}

{% block content %}
  <h1>Hello, Bootstrap</h1>
{% endblock %}

我们把navbar部分的程序修改为include自己的navbar.html即可

之后,我们修改index.html文件

{% extends "base.html" %}
{% block content %}
 <h1>Hello Flask-Bootstrap</h1>
{% endblock %}

对于navbar.html文件也可以进行适当的修改

posted on 2025-02-26 20:48  bnbncch  阅读(100)  评论(0)    收藏  举报