国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

flask之二

RichardXG / 3060人閱讀

摘要:例子如下語(yǔ)法一般在父模板中只能定義一些共性公用的代碼,子模板可能要根據(jù)不同的需求實(shí)現(xiàn)不同的代碼。這時(shí)候父模板就應(yīng)該提供一個(gè)接口,讓子模板來(lái)實(shí)現(xiàn)。

flask之二 預(yù)熱

在渲染模板的時(shí)候,默認(rèn)會(huì)從項(xiàng)目根路徑下的templates目錄下查找模板

如果想要指定模板路徑的時(shí)候,就在初始化APP的時(shí)候,這樣操作即可:

app = Flask(__name__,template_folder="C:/templates") #template_folder可以指定模板位置
模板傳參

在使用render_template渲染模板的時(shí)候,可以傳遞關(guān)鍵字參數(shù),以后直接在模板中使用就可以了

如果參數(shù)過(guò)多的話,那么就可以將所有的參數(shù)放到一個(gè)字典中,然后再傳這個(gè)參數(shù)的時(shí)候使用**將字典打散成關(guān)鍵字參數(shù)。

小例子:

my_template.py

from flask import Flask,render_template
app = Flask(__name__)
app.debug = True
@app.route("/")
def hello_world():
    context = {
        "username": "wanghui",
        "age":19,
        "children":{
            "user":"ccc",
            "type":"stu",
        }
    }
    return render_template("index.html", **context)
    # return render_template("index.html",context=context)
    # return render_template("index.html",username="wanghui",age=19)
if __name__ == "__main__":
    app.run()

templates/index.html




    
    my blog


這是模板渲染的數(shù)據(jù)

{#

{{ username }}

#} {#

{{ age }}

#} {{ context.username }} {{ context.age }}

{{ username }}

{{ children.user }}

模板中的url_for
模板中的url_for和視圖函數(shù)中的url_for是類似的,也是傳遞視圖函數(shù)的名字,也可以傳遞參數(shù)。使用的時(shí)候,需要在url_for兩邊加上一個(gè){{ url_for("func_name"),ref="/",id="1"}}

templates.py

from flask import Flask,render_template,url_for
app = Flask(__name__)
app.debug = True
@app.route("/")
def hello_world():
    return render_template("index.html")
@app.route("/accounts/login//")
def login(id):
    return render_template("login.html")
if __name__ == "__main__":
    app.run(port=8888)

templates/index.html




    
    my blog


這是從模板中渲染的

登陸

templates/login.html




    
    Login page


這是登錄頁(yè)面

{#{{ 用來(lái)存放變量 }}#} {#{% 用來(lái)執(zhí)行函數(shù)或者邏輯代碼 %}#}
過(guò)濾器
有時(shí)候我們需要在模板中對(duì)一些變量進(jìn)行處理,那么就必須要類似于python中的函數(shù)一樣,可以將這個(gè)值傳到函數(shù)中,然后做一些操作。在模板中過(guò)濾器相當(dāng)于是一個(gè)函數(shù),把當(dāng)前的變量傳入到過(guò)濾器中,然后過(guò)濾器會(huì)根據(jù)自己的功能,再返回相應(yīng)的值,之后再將結(jié)果渲染到頁(yè)面上。

基本語(yǔ)法:{{ variable |過(guò)濾器的名字 }}

guo

abs(value):返回一個(gè)數(shù)值的絕對(duì)值。 例如:-1|abs。

default(value,default_value,boolean=false):如果當(dāng)前變量沒(méi)有值,則會(huì)使用參數(shù)中的值來(lái)代替。name|default("xiaotuo")——如果name不存在,則會(huì)使用xiaotuo來(lái)替代。boolean=False默認(rèn)是在只有這個(gè)變量為undefined的時(shí)候才會(huì)使用default中的值,如果想使用python的形式判斷是否為false,則可以傳遞boolean=true。也可以使用or來(lái)替換。

escape(value)或e:轉(zhuǎn)義字符,會(huì)將<、>等符號(hào)轉(zhuǎn)義成HTML中的符號(hào)。例如:content|escape或content|e。

first(value):返回一個(gè)序列的第一個(gè)元素。names|first。

format(value,arags,*kwargs):格式化字符串。例如以下代碼:

  {{ "%s" - "%s"|format("Hello?","Foo!") }}
  將輸出:Helloo? - Foo!

last(value):返回一個(gè)序列的最后一個(gè)元素。示例:names|last。

length(value):返回一個(gè)序列或者字典的長(zhǎng)度。示例:names|length。

join(value,d=u""):將一個(gè)序列用d這個(gè)參數(shù)的值拼接成字符串。

safe(value):如果開(kāi)啟了全局轉(zhuǎn)義,那么safe過(guò)濾器會(huì)將變量關(guān)掉轉(zhuǎn)義。示例:

content_html|safe。
int(value):將值轉(zhuǎn)換為int類型。
float(value):將值轉(zhuǎn)換為float類型。
lower(value):將字符串轉(zhuǎn)換為小寫。
upper(value):將字符串轉(zhuǎn)換為小寫。
replace(value,old,new): 替換將old替換為new的字符串。
truncate(value,length=255,killwords=False):截取length長(zhǎng)度的字符串。
striptags(value):刪除字符串中所有的HTML標(biāo)簽,如果出現(xiàn)多個(gè)空格,將替換成一個(gè)空格。
trim:截取字符串前面和后面的空白字符。
string(value):將變量轉(zhuǎn)換成字符串。
wordcount(s):計(jì)算一個(gè)長(zhǎng)字符串中單詞的個(gè)數(shù)。

default過(guò)濾器詳解:

如果某個(gè)變量使用方式是{{ value|default("默認(rèn)值")}},如果value這個(gè)key不存在的話就使用過(guò)濾器提供的默認(rèn)值;如果類似于python中判斷一個(gè)值是否為False(例如:空字典,空字符串,空列表的話)那么久必須要傳遞另外一個(gè)參數(shù){{ value | default("默認(rèn)值",boolean=True)}};
可以使用or來(lái)替換default("默認(rèn)值",boolean=True)(例如{{ siginature or "此人很懶沒(méi)有留下任何說(shuō)明"}})
例子:

defaulte_falter.py

from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
    context = {
        "position":-9,
        "signature":"",
        #"signature":"this ismy blog"
    }
    return render_template("index.html",**context)
if __name__ == "__main__":
    app.run(debug=True)

templates/index.html




    
    MyBlog


{#

個(gè)性簽名:{{ signature|default("此人很懶沒(méi)有留下任何說(shuō)明!",boolean=True) }}

#}

個(gè)性簽名:{{ signature or "此人很懶沒(méi)有留下任何說(shuō)明!"}}

esacape:轉(zhuǎn)義過(guò)濾器

safe過(guò)濾器:可以關(guān)閉一公分字符串的自動(dòng)轉(zhuǎn)義

escape過(guò)濾器:對(duì)某個(gè)字符串進(jìn)行轉(zhuǎn)義

autoescape過(guò)濾器:可以對(duì)其代碼框內(nèi)的代碼塊關(guān)閉自動(dòng)轉(zhuǎn)義

first:返回序列中的第一個(gè)元素

last:返回序列中的最后一個(gè)元素

format:格式化輸出

length:長(zhǎng)度計(jì)算

int:轉(zhuǎn)換成整數(shù)

replase:舊字符串換成新的

truncate:指定長(zhǎng)度截取(結(jié)合striptags去除掉html字段之后截取純凈字符串然后按字?jǐn)?shù)去做預(yù)覽頁(yè)填充)

striptags:去除標(biāo)簽中的html字段

worldcount(s):統(tǒng)計(jì)一個(gè)長(zhǎng)字符串中的單詞數(shù)

小例子:

escape.py

from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def hello_world():
    context = {
        "position":-9,
        "signature":"",
        "persons":["abc","def"],
        "age":"18",
        "article":"hello hello xxooo xxooo!!"
    }
    return render_template("index.html",**context)
if __name__ == "__main__":
    app.run(debug=True,port=8080)

templates/index.html




    
    MyBlog


{#{% autoescape off %}#}
{#

個(gè)性簽名:{{ signature }}

#} {#{% endautoescape %}#}

{{ signature|safe }}

{{ persons|first }}

{{ persons[0] }}

{{ persons|last }}

{{ persons[-1] }}

{{ "我的名字是%s"|format("hello word!") }}

{{ "人數(shù)是 %d"|format(persons|length) }}

{% if age|int == 18 %}

年齡是18歲

{% else %}

年齡不是18歲

{% endif %}

{{ article|replace("hello","sssssz") }}

{{ article|truncate(length=5) }}

{{ signature|striptags }}

自定義模板過(guò)濾器

在python文件中寫好自己的過(guò)濾器(本質(zhì)上就是一個(gè)函數(shù))

如果要在模板中調(diào)用這個(gè)過(guò)濾器,那就需要在這個(gè)函數(shù)上加一個(gè)裝飾器@app.template_filter("過(guò)濾器名稱")

自動(dòng)加載的話就在app下添加

app.config["TEMPLATES_AUTO_RELOAD"] = True

小例子:

define_filter.py

from flask import Flask,render_template
app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"] = True
@app.route("/")
def hello_world():
    context={
        "article":"anyway hello anyway hello abccc"
    }
    return render_template("index.html",**context)
@app.template_filter("cut")
def cut(value):
    vaule = value.replace("hello","sbsb")
    return value
if __name__ == "__main__":
    app.run(debug=True,port=9090)**

templates/index.html




    
    myblog


{{ article|cut }}

實(shí)戰(zhàn)自定義過(guò)濾器

時(shí)間處理(從現(xiàn)在到發(fā)帖的時(shí)間差)

shizhan.py

from flask import Flask,render_template
from datetime import datetime
app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"] = True
@app.route("/")
def index():
    context={
        "article":"aaa bbb ccc",
        "create_time":datetime(2018,02,23,10,12,11)
    }
    return render_template("index.html",**context)
@app.template_filter("handle_time")
def handle_time(time):
    """
    1.距離現(xiàn)在的時(shí)間多久,如果間隔在一分鐘以內(nèi)就表示剛剛
    2.在一小時(shí)以內(nèi)就顯示xx分鐘前
    3.在24小時(shí)以內(nèi)就顯示xx小時(shí)前
    4. 在一個(gè)月之內(nèi)就顯示多少天之前
    5. 否則就顯示具體的時(shí)間
    :param time:
    :return:
    """
    if isinstance(time,datetime):
        now = datetime.now()
        timestamp = (now - time).total_seconds() #獲取間隔秒數(shù)
        if timestamp < 60:
            return "剛剛"
        elif timestamp >=60 and timestamp<= 60*60:
            minutes = timestamp/60
            return "%s分鐘前",int(minutes)
        elif timestamp >= 60*60 and timestamp <= 60*60*24:
            hours = timestamp/(60*60)
            return "%s小時(shí)前",int(hours)
        elif timestamp >= 60*60*24 and timestamp<= 60*60*24*30:
            days = timestamp/(60*60*24)
            return "%s天前",int(days)
    else:
        return time.strftime("%Y-%m-%d %H:%M")
if __name__ == "__main__":
    app.run(port=9092,debug=True)

templates/index.html




    
    MyBlog


發(fā)表時(shí)間:{{ create_time|handle_time }}

條件判斷 For循環(huán)

jinjia2中的for循環(huán),跟python中的for循環(huán)基本是一致的,也是用for in形式;
而且可以便利所有的序列以及迭代器,但是唯一不同的是jinjia2中的for循環(huán)沒(méi)有breakcontinue

小例子:

for_ex.py

from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def hello_world():
    context = {
        "users":["user01","user02","user03"],
        "person":{
            "username":"wanghui",
            "age":21,
            "country":"china",
        },
        "books":[
            {
                "name":"sk1",
                "author":"saa",
                "price":100,
            },
            {
                "name": "aaaeede1",
                "author": "se232aa",
                "price": 103,
            },
            {
                "name": "AAAew",
                "author": "VVVeqwea",
                "price": 190,
            },
            {
                "name": "skfdfds1",
                "author": "sdfsfsdfdaa",
                "price": 30,
            }
        ]
    }
    return render_template("index.html",**context)
if __name__ == "__main__":
    app.run(debug=True)

templates/index.html




    
    MyBlog


    {% for user in users %}

    {{ user }}

    {% endfor %}
{% for key,value in person.items() %} {% endfor %}
用戶名 年齡 國(guó)家
{{ value }}
{% for book in books %} {% if loop.first %} {% elif loop.last %} {% else %} {% endif %} {% endfor %}
ID 書名 作者 價(jià)格 總數(shù)
{{ loop.index }} {{ book.name }} {{ book.author }} {{ book.price }} {{ loop.length }}
{% for x in range(1,10) %} {% for y in range(1,x+1) if y <= x %} {% endfor %} {% endfor %}
{{ y }}*{{ x }}={{ x*y }}
模板中的宏跟python中的函數(shù)類似,可以傳遞參數(shù),但是不能有返回值
使用宏的時(shí)候,參數(shù)可以是默認(rèn)值

小例子:

macro.py

from flask import Flask,render_template
app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"] = True
app.config["DEBUG"] = True
@app.route("/")
def hello_world():
    return render_template("index.html")
if __name__ == "__main__":
    app.run(port=9999)

templates/index.html




    
    Macro


    {% macro input(name="",value="",type="text") %}
        
    {% endmacro %}

登陸頁(yè)面

用戶名: {{ input("username") }}
密碼: {{ input("password",type="password") }}
{{ input(value="提交",type="submit") }}
宏的導(dǎo)入
在真實(shí)的開(kāi)發(fā)中,會(huì)將一些常用的宏多帶帶放在一個(gè)文件中,在需要使用的時(shí)候,再?gòu)倪@個(gè)文件中進(jìn)行導(dǎo)入。
import語(yǔ)句的用法跟python中的import類似,可以直接import...as...,也可以from...import...或者from...import...as...,假設(shè)現(xiàn)在有一個(gè)文件,叫做forms.html,里面有兩個(gè)宏分別為input和textarea,如下:

注意事項(xiàng):
a. inport宏文件 as xxx
b. from 宏文件路徑 import 宏的名字 [as xxx]
c. 宏文件的路徑,不要以相對(duì)路徑去找,都要以templates作為絕對(duì)路徑去找
d. 如果想要在導(dǎo)入宏的時(shí)候,就把當(dāng)前末班的一些參數(shù)傳遞給宏所在的模板,那么就應(yīng)該在導(dǎo)入的時(shí)候使用
with context

小例子:

macros.py

from flask import Flask,render_template
app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"] = True
app.config["DEBUG"] = True
@app.route("/")
def hello_world():
    return render_template("index/index.html")
if __name__ == "__main__":
    app.run(port=9999)

templates/macros/macros.html

{% macro input(name="",value="",type="text") %}
    
{% endmacro %}

templates/index/index.html

{#{% from "macros.html" import input as inp %}#}
{% import "macros/macros.html" as macros with context %}



    
    Macro


登陸頁(yè)面

用戶名: {{ macros.input("username") }}
密碼: {{ macros.input("password",type="password") }}
{{ macros.input(value="提交",type="submit") }}
include標(biāo)簽

這個(gè)標(biāo)簽相當(dāng)于是將指定模板中的代碼復(fù)制粘貼到當(dāng)前的位置

include標(biāo)簽,如果要繼續(xù)使用父模板中的變量,直接用就可以了

include的路徑也和import一樣,需要從templates為根,不要以相對(duì)路徑去找。

小例子:

include_ex.py

from flask import Flask,render_template
app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"]
@app.route("/")
def hello_world():
    return render_template("index.html",username="wanghui")
@app.route("/detail/")
def detail():
    return render_template("course_detail.html")
if __name__ == "__main__":
    app.run(debug=True)

templates/index.html




    
    MyBlog


{% include "common/header.html" %}
中間的
{% include "common/footer.html" %}
    {{ username }}

templates/course_detail.html




    
    Title


{% include "common/header.html" %}
文章詳情!
{% include "common/footer.html" %}

templates/common/header.html


templates/common/footer.html

這是底部
set with語(yǔ)句

在模板中,可以使用set來(lái)定義變量;一旦定義了這個(gè)變量。那么在后面的代碼中,都可以使用這個(gè)變量。

with語(yǔ)句定義的變量,只能在with的代碼塊中使用。超出with代碼塊,則不能使用

with不一定要跟一個(gè)變量,也可以是一個(gè)空的with語(yǔ)句,以后要用的話,就在with中使用set定義的變量來(lái)使用。


{% set username="wanghui" %}

用戶名:{{ username }}

{% with %} {% set classroom="2018" %}

班級(jí):{{ classroom }}

{% endwith %}

別的班級(jí){{ classroom }}

加載靜態(tài)文件

加載靜態(tài)文件使用的是url_for函數(shù),第一個(gè)參數(shù)為static,第二個(gè)參數(shù)是filename="path"

路徑查找要以static目錄作為根目錄

小例子:

static_ex.py

from flask import Flask,render_template
app = Flask(__name__)
app.config.update({
    "DEBUG":True,
    "TEMPLATES_AUTO_RELOAD":True,
})
@app.route("/")
def hello_world():
    return render_template("index.html")
if __name__ == "__main__":
    app.run()

static/css/index.css

body{
    background: pink;
}

static/js/index.js

alert("hello user!")

static/imgs/sas.jpg

圖片

templates/index.html




    
    Title
    
    




模板繼承 為什么需要模板繼承?

可以將一些公用的代碼多帶帶抽取出來(lái)放到一個(gè)父模板中,以后子模板直接繼承就給可以使用了。

這樣可以減少重復(fù)性的代碼,并且以后代碼修改起來(lái)也很方便

模板繼承的語(yǔ)法

使用extends語(yǔ)句來(lái)指明繼承的父模板。父模板的路徑也就是相對(duì)于templates文件夾下的絕對(duì)路徑。例子如下{% extends "base.html" %}

block語(yǔ)法

一般在父模板中只能定義一些共性公用的代碼,子模板可能要根據(jù)不同的需求實(shí)現(xiàn)不同的代碼。這時(shí)候父模板就應(yīng)該提供一個(gè)接口,讓子模板來(lái)實(shí)現(xiàn)。從而實(shí)現(xiàn)業(yè)務(wù)的具體功能。

在父模板中

{% block body_block %}
    

我是base下的

{% endblock %}

在子模板中

{% block body_block %}
    

我是index的內(nèi)容

{% endblock %}
調(diào)用父模板代碼block中的代碼

默認(rèn)情況下,字幕版實(shí)現(xiàn)了父模板定義的block,那么子模板中block的代碼就會(huì)覆蓋掉父模板中的代碼,要想保留父模板中的block的話就是用{{ super() }}來(lái)實(shí)現(xiàn)

父模板的內(nèi)容:

{% block body_block %}
    

base.html

{% endblock %}

子模板中的內(nèi)容:

{% extends "base.html" %}
{% block body_block %}
    {{ super() }}
    

我是index的內(nèi)容

{% endblock %}
調(diào)用另外一個(gè)block中的代碼

在另外一個(gè)模板中使用其他模板中的代碼,可以使用{{ self.blockname() }}即可

父模板

 {% block title %}
{% endblock %}

{% block body_block %}
    

base.html

{% endblock %}

子模板:

{% extends "base.html" %}
{% block title %}
MyIndex
{% endblock %}
{% block body_block %}
    {{ super() }}
    {{ self.title() }}
    

我是index的內(nèi)容

{% endblock %}
其他注意事項(xiàng)

繼承的代碼必須放在子模板中的第一行{% extends "base.html" %}

子模板中要實(shí)現(xiàn)自己的代碼,要放到block中,不然不生效

繼承的例子:

inherit_ex.py

from flask import Flask,render_template
app = Flask(__name__)
app.config.update({
    "DEBUG":True,
    "TEMPLATES_AUTO_RELOAD":True
})
@app.route("/")
def index():
    return render_template("index.html")
@app.route("/detail/")
def detail():
    return render_template("course_detail.html")
if __name__ == "__main__":
    app.run()

templates/base.html




    
    {% block title %}
    {% endblock %}
    



{% block body_block %}
    

base.html

{% endblock %}
這是底部

templates/index.html

{% extends "base.html" %}
{% block title %}
MyIndex
{% endblock %}
{% block body_block %}
    {{ super() }}
    {{ self.title() }}
    

我是index的內(nèi)容

{% endblock %}

templates/course_detail.html

{% extends "base.html" %}
{% block body_block %}

this is course

{% endblock %}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41667.html

相關(guān)文章

  • flask之二

    摘要:例子如下語(yǔ)法一般在父模板中只能定義一些共性公用的代碼,子模板可能要根據(jù)不同的需求實(shí)現(xiàn)不同的代碼。這時(shí)候父模板就應(yīng)該提供一個(gè)接口,讓子模板來(lái)實(shí)現(xiàn)。 flask之二 預(yù)熱 在渲染模板的時(shí)候,默認(rèn)會(huì)從項(xiàng)目根路徑下的templates目錄下查找模板 如果想要指定模板路徑的時(shí)候,就在初始化APP的時(shí)候,這樣操作即可: app = Flask(__name__,template_folder=...

    tinyq 評(píng)論0 收藏0
  • 從docker到istio之二 - 使用compose部署應(yīng)用

    摘要:使用導(dǎo)出端口,使用掛載數(shù)據(jù)卷。清理應(yīng)用使用一鍵清理應(yīng)用總結(jié)已經(jīng)實(shí)現(xiàn)了容器擴(kuò)容自動(dòng)擋更直觀的控制容器啟動(dòng)順序及依賴。從部署到編排,單字面理解,看起來(lái)能夠維護(hù)的容器量都增長(zhǎng)了。推薦應(yīng)用包括多個(gè)服務(wù),推薦部署方式就是。前言 容器化,云原生越演越烈,新概念非常之多。信息爆炸的同時(shí),帶來(lái)層層迷霧。我嘗試從擴(kuò)容出發(fā)理解其脈路,經(jīng)過(guò)實(shí)踐探索,整理形成一個(gè)入門教程,包括下面四篇文章。 容器化實(shí)踐之路-從d...

    yy13818512006 評(píng)論0 收藏0
  • 實(shí)戰(zhàn)Java虛擬機(jī)之二“虛擬機(jī)的工作模式”

    摘要:今天開(kāi)始實(shí)戰(zhàn)虛擬機(jī)之二虛擬機(jī)的工作模式。總計(jì)有個(gè)系列實(shí)戰(zhàn)虛擬機(jī)之一堆溢出處理實(shí)戰(zhàn)虛擬機(jī)之二虛擬機(jī)的工作模式實(shí)戰(zhàn)虛擬機(jī)之三的新生代實(shí)戰(zhàn)虛擬機(jī)之四禁用實(shí)戰(zhàn)虛擬機(jī)之五開(kāi)啟編譯目前的虛擬機(jī)支持和兩種運(yùn)行模式。 今天開(kāi)始實(shí)戰(zhàn)Java虛擬機(jī)之二:虛擬機(jī)的工作模式。 總計(jì)有5個(gè)系列實(shí)戰(zhàn)Java虛擬機(jī)之一堆溢出處理實(shí)戰(zhàn)Java虛擬機(jī)之二虛擬機(jī)的工作模式實(shí)戰(zhàn)Java虛擬機(jī)之三G1的新生代GC實(shí)戰(zhàn)Jav...

    focusj 評(píng)論0 收藏0
  • 全球互聯(lián)網(wǎng)大約五分之二的網(wǎng)站竟然是用WordPress來(lái)創(chuàng)建的!

    摘要:目前已經(jīng)成為全球最為流行的建站程序,根據(jù)的最新統(tǒng)計(jì),的市場(chǎng)份額過(guò)去一年在持續(xù)增長(zhǎng)。報(bào)告顯示,市場(chǎng)份額過(guò)去一年增長(zhǎng)了至,這意味著互聯(lián)網(wǎng)上大約五分之二的網(wǎng)站是用創(chuàng)建的。資料顯示,在年初,為所有網(wǎng)站提供了的支持。作為該年度的第三大主要核心版本。WordPress目前已經(jīng)成為全球最為流行的CMS建站程序,根據(jù) W3techs 的最新統(tǒng)計(jì),WordPress 的市場(chǎng)份額過(guò)去一年在持續(xù)增長(zhǎng)。W3tech...

    Tecode 評(píng)論0 收藏0
  • 數(shù)據(jù)結(jié)構(gòu)之二叉樹

    摘要:數(shù)據(jù)結(jié)構(gòu)之二叉樹本文講解二叉樹的基本操作查找節(jié)點(diǎn)計(jì)算樹的高度清空樹遞歸遍歷先序遍歷中序遍歷后序遍歷按層遍歷來(lái)看一下樹的結(jié)構(gòu)首先,為了方便后面看到效果,先手動(dòng)初始化一個(gè)有個(gè)節(jié)點(diǎn)的二叉樹查找節(jié)點(diǎn)查找節(jié)點(diǎn)遞歸左子樹遞歸右子樹計(jì)算樹的深度計(jì)算樹的深 數(shù)據(jù)結(jié)構(gòu)之二叉樹 本文講解二叉樹的基本操作: 查找節(jié)點(diǎn) 計(jì)算樹的高度 清空樹 遞歸遍歷:先序遍歷、中序遍歷、后序遍歷 按層遍歷 來(lái)看一下樹的結(jié)...

    lansheng228 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<