flask之模板继承(1)
(方法)直接在需要继承的页面里写:{% extends "父模板名.html" %}
{% extends "base.html" %}
(注意)这个继承方法必须要在在flask程序里运行,并且要写上对应的视图函数,就是运行主程序后,flask可以渲染的页面才会起作用,单独去运行这个页面是不会起作用的
flask之模板继承(2)
继续父模板的内容后,我们需要在新的页面写自己独有的内容怎么办,如下
(方法)需要事先在父模板里分别到head和body里各写各block,并给block起一个名字,如下代码,分别给两个block起了叫head和body的名字:
"父模板.html"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
{% block head %}
{% endblock %}/head>
</head>
<body>
{% block body %}
{% endblock %}
</body>
然后在需要继承的页面里分别再把这两个block写进来,之后写head里的内容(比如设置title和style)就到head这个block里写,写body里的内容(大部分的标签)就到body这个block里写
(注意)如果设置style时候就像上面说的直接在head这个block里写个style标签,进行设置样式就好了。
flask之重定向
(方法)先引入redirect,当然最好也引入url_for ,然后在你需要重定向的时候直接使用这个函数,里面的参数是你要转到的地址(地址要用引号括起来),建议最好用url_for函数(参数是是地址对应的视图函数名,得用引号括起来)来反转这个地址。代码如下:
from flask import Flask, redirect, url_for
.......
@app.route("/")
def index():
return "index"
@app.route("/login")
def login():
return redirect(url_for("index"))
flask之渲染模板
(方法)和重定向差不多,先引入render_template,然后在需要的地方使用这个函数,里面的参数是这样的,第一个是模板文件,需要用引号括起来,第二个或者更多的参数是给前端传的,这些值需要使用关键字参数,这个关键字的名字是前端设置的变量名,如果有很多建议事先先写个字典,直接**字典名传过去就行:
from flask import Flask, render_template
.........
@app.route("/")
def index():
return render_template("index.html", username="mimi", password="122324")