您好,登錄后才能下訂單哦!
今天來學習一個新知識點:Flask中的繼承。其實在Python當中也有繼承,定義一個類(父類),在另外一個類(子類)中繼承父類的方法或者屬性,也可以重寫父類的方法或者屬性。
類似的,Flask當中也有繼承,這個繼承主要是網頁template的繼承,一般不同情況下,一個網站下面所有子頁面的導航欄和底部信息應該是同一個風格的,具體子頁面的內容應該是不同的,如果導航欄在home頁面有了,其它子頁面也要用到相同的導航欄,是不是相同的代碼也要在子頁面中再寫一遍?Flask中提供了一種繼承的方式來實現代碼復用,大大節省了開發時間。
舉個例子吧,一個首頁,一個登錄頁面。
from flask import Flask, render_template
import config
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/login/')
def login():
return render_template('login.html')
if __name__ == '__main__':
app.run()
base.html代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
<style>
.nav{
background: #3a3a3a;
height: 65px;
}
ul{
overflow: hidden;
}
ul li{
float: left;
list-style: none;
padding: 0 10px;
line-height: 65px;
}
ul li a{
color: white;
}
</style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">首頁</a></li>
<li><a href="#">新建帖子</a></li>
</ul>
</div>
{% block content %}
{% endblock %}
</body>
</html>
首頁代碼:
{% extends 'base.html' %}
{% block title %}
首頁
{% endblock %}
{% block content %}
<h2>這是首頁</h2>
{% endblock %}
登錄頁面代碼:
{% extends 'base.html' %}
{% block title %}
登錄
{% endblock %}
{% block content %}
<h2>登錄頁面</h2>
{% endblock %}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。