成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Flask Web Development —— 模板(中)

eternalshallow / 1579人閱讀

摘要:示例使用的模板的指令通過(guò)從引用來(lái)實(shí)現(xiàn)模板的繼承。上面的模板定義了三個(gè),分別命名為和。同時(shí)返回相應(yīng)錯(cuò)誤的數(shù)字狀態(tài)碼。示例帶有導(dǎo)航欄的基礎(chǔ)應(yīng)用程序模板這個(gè)模板中的塊中只是一個(gè)名為的元素,它包含了在派生模板中定義的名為的空。

2、集成Twitter Bootstrap的Flask-Bootstrap

Bootstrap是Twitter的一個(gè)開(kāi)源框架,提供用戶(hù)交互組件來(lái)創(chuàng)建一個(gè)清新且有吸引力的web頁(yè)面,并兼容所有現(xiàn)代web瀏覽器。

Bootstrap是一個(gè)客戶(hù)端框架,服務(wù)端不直接參與。服務(wù)端需要做的就是提供HTML響應(yīng),引用層疊樣式表(CSS)和JavaScript文件并通過(guò)HTML、CSS、和JavaScript代碼來(lái)實(shí)例化需要的組件。模板是做這些的理想地方。

集成Bootstrap到應(yīng)用程序最好的方式是在模板中做一些必要的改變。一個(gè)簡(jiǎn)單點(diǎn)的途徑就是使用Flask-Bootstrap擴(kuò)展去簡(jiǎn)化集成工作??梢酝ㄟ^(guò)pip來(lái)安裝Flask-Bootstrap:

(venv) $ pip install flask-bootstrap

Flask擴(kuò)展通常在應(yīng)用程序?qū)嵗粍?chuàng)建的時(shí)候初始化。示例3-4展示Flask-Bootstrap的初始化。

示例3-4. hello.py:Flask-Bootstrap初始化

from flask.ext.bootstrap import Bootstrap
# ...
bootstrap = Bootstrap(app)

和第二章的Flask-Script一樣,F(xiàn)lask-Bootstrap從flask.ext命名空間導(dǎo)入并通過(guò)傳遞應(yīng)用程序?qū)嵗綐?gòu)造函數(shù)來(lái)初始化。

一旦Flask-Bootstrap被初始化,一個(gè)包含所有Bootstrap文件的基礎(chǔ)模板就可供應(yīng)用程序使用了。這個(gè)模板利用Jinja2的模板繼承,應(yīng)用程序則可以擴(kuò)展一個(gè)擁有通用頁(yè)面結(jié)構(gòu),且包含Bootstrap導(dǎo)入的元素的基礎(chǔ)模板。示例3-5展示作為派生模板的新版user.html。

_示例3-5. templates/user.html: 使用Flask-Bootstrap的模板

{% extends "bootstrap/base.html" %}
{% block title %}Flasky{% endblock %}
{% block navbar %}





{% endblock %}

{% block content %}


{% endblock %}

Jinja2的extends指令通過(guò)從Flask-Bootstrap引用bootstrap/base.html來(lái)實(shí)現(xiàn)模板的繼承。Flask-Bootstrap的基礎(chǔ)模板提供一個(gè)包含Bootstrap CSS和JavaScript文件的web頁(yè)面骨架。

基礎(chǔ)模板定義了一些可以被派生模板重寫(xiě)的block。blockendblock指令定義了被添加到基礎(chǔ)模板中block的內(nèi)容。

上面的user.html模板定義了三個(gè)block,分別命名為title、navbarcontent?;A(chǔ)模板里的這些block輸出派生模板定義的內(nèi)容。title塊比較簡(jiǎn)單;它的內(nèi)容將出現(xiàn)在</b>標(biāo)簽內(nèi),然后被渲染在HTML文檔的頭部 。<b>navbar</b>和<b>content</b>塊則是為頁(yè)面保留的導(dǎo)航欄和主內(nèi)容。</p> <p>在這個(gè)模板中,<b>navbar</b>塊使用Bootstrap組件定義了一個(gè)簡(jiǎn)單的導(dǎo)航欄。<b>content</b>塊有個(gè)名為<b>container</b>的<b><div></b>,里面嵌套了名為<b>page-header</b>的<b><div></b>。圖3-1展示這些操作后應(yīng)用程序長(zhǎng)成啥樣了。</p> <pre> <p>建議:如果你有克隆在GitHub上的應(yīng)用程序,你現(xiàn)在可以運(yùn)行<b>git checkout 3b</b>來(lái)切換到這個(gè)版本的應(yīng)用程序。Bootstrap官方文檔 是一個(gè)非常強(qiáng)大的學(xué)習(xí)資料,完全可以復(fù)制粘貼使用那些示例。</p> </pre> <p><script type="text/javascript">showImg("http://young-py.github.io/imgs/flask3-02.png");</script></p> <p><em>圖片3-1. Twitter Bootstrap模板</em></p> <p>Flask-Bootstrap的<b>base.html</b>模板定義了一些其他可供派生模板使用的<b>block</b>。表格3-2展示了完整的可用<b>block</b>列表。</p> <p><em>表格3-2. Flask-Bootstrap基礎(chǔ)模板中的block</em></p> <p><script type="text/javascript">showImg("http://young-py.github.io/imgs/flask3-03.png");</script></p> <p>表格3-2中的許多塊用于Flask-Bootstrap自身,所以直接重寫(xiě)它們會(huì)引發(fā)問(wèn)題。例如,<b>styles</b>和<b>scripts</b>塊是Bootstrap定義文件的地方。如果應(yīng)用程序需要新增自己的內(nèi)容到已經(jīng)有一些內(nèi)容的塊中,則必須使用Jinja2的<b>super()</b>。例如,如何在派生模板中寫(xiě)<b>scripts</b>塊,來(lái)給文檔增加新的JavaScript文件:</p> <pre>{% block scripts %} {{ super() }} <script type="text/javascript" src="my-script.js"></script> {% endblock %} </pre> <b>3、自定義錯(cuò)誤頁(yè)面</b> <p>當(dāng)你輸入錯(cuò)誤路徑在你的瀏覽器地址欄,你會(huì)得到404錯(cuò)誤代碼頁(yè)面。目前的錯(cuò)誤頁(yè)面很普通也沒(méi)有吸引力,且沒(méi)有一致的使用Bootstrap頁(yè)面。</p> <p>Flask允許應(yīng)用程序自定義基于模板的錯(cuò)誤頁(yè)面,就像常規(guī)的路由。兩個(gè)最常見(jiàn)的錯(cuò)誤代碼,404是在客戶(hù)端請(qǐng)求的頁(yè)面或路徑不存在的時(shí)候觸發(fā);500是當(dāng)存在未處理的異常時(shí)觸發(fā)。示例3-6展示如何為這兩個(gè)錯(cuò)誤提供自定義處理。</p> <p><em>示例3-6. hello.py:自定義錯(cuò)誤頁(yè)面</em></p> <pre>@app.errorhandler(404) def page_not_found(e): return render_template("404.html"), 404 @app.errorhandler(500) def internal_server_error(e): return render_template("500.html"), 500 </pre> <p>錯(cuò)誤處理返回響應(yīng),和視圖函數(shù)一樣。同時(shí)返回相應(yīng)錯(cuò)誤的數(shù)字狀態(tài)碼。</p> <p>在錯(cuò)誤處理中引用的模板需要自己去寫(xiě)。這些模板需要和常規(guī)的頁(yè)面一樣的布局,所以在這個(gè)示例中需要導(dǎo)航欄和頁(yè)面頭部顯示錯(cuò)誤信息。</p> <p>編寫(xiě)這些模板的簡(jiǎn)單方式是復(fù)制<b>templates/user.html</b>到<b>templates/404.html</b>和<b>templates/500.html</b>,然后改變這兩個(gè)新文件的頁(yè)面頭部元素來(lái)給出相應(yīng)的錯(cuò)誤信息,但這會(huì)產(chǎn)生很多副本。</p> <p>Jinja2的模板繼承可以幫助我們解決這個(gè)問(wèn)題。Flask-Bootstrap提供了一個(gè)帶有基本布局頁(yè)面的基礎(chǔ)模板,應(yīng)用程序可以定義自己的、帶有完整頁(yè)面布局的基礎(chǔ)模板,包括導(dǎo)航欄和定義在派生模板中的頁(yè)面內(nèi)容。示例3-7展示了<b>templates/base.html</b>,它是一個(gè)繼承自<b>bootstrap/base.html</b>的新模板且定義了導(dǎo)航欄,但對(duì)于其他模板則是一個(gè)基礎(chǔ)模板,例如<b>templates/user.html</b>、<b>templates/404.html</b>和<b>templates/500.html</b>。</p> <p>_示例3-7. templates/base.html:帶有導(dǎo)航欄的基礎(chǔ)應(yīng)用程序模板</p> <pre>{% extends "bootstrap/base.html" %} {% block title %}Flasky{% endblock %} {% block navbar %} <div id="qoyqs8suu2u" class="navbar navbar-inverse" role="navigation"> <div id="qoyqs8suu2u" class="container"> <div id="qoyqs8suu2u" class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span id="qoyqs8suu2u" class="sr-only">Toggle navigation</span> <span id="qoyqs8suu2u" class="icon-bar"></span> <span id="qoyqs8suu2u" class="icon-bar"></span> <span id="qoyqs8suu2u" class="icon-bar"></span> </button> <a class="navbar-brand" href="/">Flasky</a> </div> <div id="qoyqs8suu2u" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a href="/">Home</a></li> </ul> </div> </div> </div> {% endblock %} {% block content %} <div id="qoyqs8suu2u" class="container"> {% block page_content %}{% endblock %} </div> {% endblock %} </pre> <p>這個(gè)模板中的<b>content</b>塊中只是一個(gè)名為<b>container</b>的<b><div></b>元素,它包含了在派生模板中定義的名為<b>page_content</b>的空block。</p> <p>應(yīng)用程序的模板將從該模板繼承而不是直接從Flask-Bootstrap繼承。示例3-8展示了從<b>templates/base.html</b>繼承來(lái)構(gòu)造一個(gè)自定義404錯(cuò)誤頁(yè)面是如此的簡(jiǎn)單。</p> <p><em>示例3-8. <b>templates/404.html</b>:使用模板繼承自定義404錯(cuò)誤頁(yè)面</em></p> <pre>{% extends "base.html" %} {% block title %}Flasky - Page Not Found{% endblock %} {% block page_content %} <div id="qoyqs8suu2u" class="page-header"> <h1>Not Found</h1> </div> {% endblock %} </pre> <p>圖片3-2展示在瀏覽器中錯(cuò)誤頁(yè)面是怎樣的。</p> <p><script type="text/javascript">showImg("http://young-py.github.io/imgs/flask3-04.png");</script></p> <p><em>圖片3-2. 自定義404錯(cuò)誤頁(yè)面</em></p> <p>現(xiàn)在<b>templates/user.html</b>模板可以通過(guò)繼承基礎(chǔ)模板來(lái)簡(jiǎn)化它,就像示例3-9展示的這樣。</p> <p><em>示例3-9. templates/user.html:使用模板繼承簡(jiǎn)化頁(yè)面模板</em></p> <pre>{% extends "base.html" %} {% block title %}Flasky{% endblock %} {% block page_content %} <div id="qoyqs8suu2u" class="page-header"> <h1>Hello, {{ name }}!</h1> </div> {% endblock %} </pre> <pre> <p>建議:如果你有克隆在GitHub上的應(yīng)用程序,你現(xiàn)在可以運(yùn)行<b>git checkout 3c</b>來(lái)切換到這個(gè)版本的應(yīng)用程序。</p> </pre> </div> <div id="qoyqs8suu2u" class="mt-64 tags-seach" > <div id="qoyqs8suu2u" class="tags-info"> <a style="width:120px;" title="GPU云服務(wù)器" href="http://systransis.cn/site/product/gpu.html">GPU云服務(wù)器</a> <a style="width:120px;" title="云服務(wù)器" href="http://systransis.cn/site/active/kuaijiesale.html?ytag=seo">云服務(wù)器</a> <a style="width:120px;" title="web-development" href="http://systransis.cn/yun/tag/web-development/">web-development</a> <a style="width:120px;" title="Flask_Web" href="http://systransis.cn/yun/tag/Flask_Web/">Flask_Web</a> <a style="width:120px;" title="web模板" href="http://systransis.cn/yun/tag/webmoban/">web模板</a> <a style="width:120px;" title="Development" href="http://systransis.cn/yun/tag/Development/">Development</a> </div> </div> <div id="qoyqs8suu2u" class="entry-copyright mb-30"> <p class="mb-15"> 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。</p> <p>轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37433.html</p> </div> <ul class="pre-next-page"> <li id="qoyqs8suu2u" class="ellipsis"><a class="hpf" href="http://systransis.cn/yun/37432.html">上一篇:[零基礎(chǔ)學(xué)python]通過(guò)Python連接數(shù)據(jù)庫(kù)</a></li> <li id="qoyqs8suu2u" class="ellipsis"><a class="hpf" href="http://systransis.cn/yun/37434.html">下一篇:flask 跨域訪(fǎng)問(wèn)裝飾器實(shí)現(xiàn)</a></li> </ul> </div> <div id="qoyqs8suu2u" class="about_topicone-mid"> <h3 class="top-com-title mb-0"><span data-id="0">相關(guān)文章</span></h3> <ul class="com_white-left-mid atricle-list-box"> <li> <div id="qoyqs8suu2u" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/37454.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>Web</em>表單(上)</b></a></h2> <p class="ellipsis2 good">摘要:每個(gè)表單域都可以連接到一個(gè)或多個(gè)是一個(gè)用于檢查用戶(hù)提交的輸入是否合法的函數(shù)。表單域構(gòu)造函數(shù)的第一個(gè)參數(shù)是一個(gè),在渲染表單到時(shí)會(huì)使用。驗(yàn)證確保提交的表單域不為空。表單域驗(yàn)證都是直接從包中導(dǎo)入。表格展示了一組支持的標(biāo)準(zhǔn)表單域。 第二章中介紹的request對(duì)象公開(kāi)了所有客戶(hù)端發(fā)送的請(qǐng)求信息。特別是request.form可以訪(fǎng)問(wèn)POST請(qǐng)求提交的表單數(shù)據(jù)。 盡管Flask的request...</p> <div id="qoyqs8suu2u" class="com_white-left-info"> <div id="qoyqs8suu2u" class="com_white-left-infol"> <a href="http://systransis.cn/yun/u-336.html"><img src="http://systransis.cn/yun/data/avatar/000/00/03/small_000000336.jpg" alt=""><span id="qoyqs8suu2u" class="layui-hide64">CODING</span></a> <time datetime="">2019-07-24 17:49</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="qoyqs8suu2u" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/37461.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>模板</em>(下)</b></a></h2> <p class="ellipsis2 good">摘要:如果路由重組,模板中的鏈接將被打斷而變得無(wú)法訪(fǎng)問(wèn)。靜態(tài)文件應(yīng)用程序不僅僅是由代碼和模板組成。當(dāng)服務(wù)器收到來(lái)自之前示例的,它會(huì)產(chǎn)生一個(gè)響應(yīng)包含的文件內(nèi)容。一個(gè)優(yōu)雅的解決方案是允許服務(wù)器只發(fā)送時(shí)間給瀏覽器,由瀏覽器轉(zhuǎn)為當(dāng)?shù)貢r(shí)間并渲染。 4、鏈接 任何應(yīng)用程序都有多個(gè)路由,必然需要包含鏈接來(lái)連接不同的頁(yè)面,例如導(dǎo)航欄。 在模板中,對(duì)于簡(jiǎn)單的路由直接寫(xiě)URLs做鏈接是非?,嵥槁闊┑模o帶...</p> <div id="qoyqs8suu2u" class="com_white-left-info"> <div id="qoyqs8suu2u" class="com_white-left-infol"> <a href="http://systransis.cn/yun/u-697.html"><img src="http://systransis.cn/yun/data/avatar/000/00/06/small_000000697.jpg" alt=""><span id="qoyqs8suu2u" class="layui-hide64">raoyi</span></a> <time datetime="">2019-07-24 17:49</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="qoyqs8suu2u" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/37435.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>模板</em>(上)</b></a></h2> <p class="ellipsis2 good">摘要:用真實(shí)的值替換變量并返回最終響應(yīng)字符串,這個(gè)過(guò)程稱(chēng)為渲染。示例展示模板實(shí)現(xiàn)該響應(yīng)??刂平Y(jié)構(gòu)提供一些控制結(jié)構(gòu)用于改變模板流。這個(gè)示例展示如何使用循環(huán)做到這些同樣支持宏,這和代碼中的函數(shù)很像。 寫(xiě)代碼最關(guān)鍵的是要易于維護(hù)且結(jié)構(gòu)清晰整潔。目前為止,你看到的例子都過(guò)于簡(jiǎn)單從而沒(méi)有做這方面的要求。Flask視圖函數(shù)希望將兩個(gè)應(yīng)該完全獨(dú)立的任務(wù)一并處理,兩個(gè)任務(wù)有兩種代碼,一并處理勢(shì)必會(huì)引發(fā)問(wèn)題。...</p> <div id="qoyqs8suu2u" class="com_white-left-info"> <div id="qoyqs8suu2u" class="com_white-left-infol"> <a href="http://systransis.cn/yun/u-654.html"><img src="http://systransis.cn/yun/data/avatar/000/00/06/small_000000654.jpg" alt=""><span id="qoyqs8suu2u" class="layui-hide64">fizz</span></a> <time datetime="">2019-07-24 17:47</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="qoyqs8suu2u" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/45324.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— Email</b></a></h2> <p class="ellipsis2 good">摘要:函數(shù)攜帶目的地址主題郵件體模板和一組關(guān)鍵字參數(shù)。許多擴(kuò)展操作是在假設(shè)有活動(dòng)的應(yīng)用程序和請(qǐng)求上下文的情況下進(jìn)行的。但是當(dāng)函數(shù)在一個(gè)不同的線(xiàn)程上執(zhí)行,應(yīng)用程序上下文需要人為地創(chuàng)建使用。例如,執(zhí)行函數(shù)可以將郵件發(fā)送到的任務(wù)隊(duì)列中。 許多類(lèi)型的應(yīng)用程序都會(huì)在某些事件發(fā)生的時(shí)候通知用戶(hù),常用的溝通方法就是電子郵件。盡管在Flask應(yīng)用程序中,可以使用Python標(biāo)準(zhǔn)庫(kù)中的smtplib包來(lái)發(fā)送電...</p> <div id="qoyqs8suu2u" class="com_white-left-info"> <div id="qoyqs8suu2u" class="com_white-left-infol"> <a href="http://systransis.cn/yun/u-999.html"><img src="http://systransis.cn/yun/data/avatar/000/00/09/small_000000999.jpg" alt=""><span id="qoyqs8suu2u" class="layui-hide64">SKYZACK</span></a> <time datetime="">2019-07-31 11:35</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="qoyqs8suu2u" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/37475.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>Web</em>表單(下)</b></a></h2> <p class="ellipsis2 good">摘要:局部變量用于保存從表單中接收到的名字,初始化時(shí)變量為。在語(yǔ)句中,這個(gè)名字被賦值給局部變量且表單域的數(shù)據(jù)屬性通過(guò)賦值為空字符串而被清除。示例重定向和用戶(hù)會(huì)話(huà)在上一個(gè)版本中,局部變量用于保存用戶(hù)在表單中輸入的姓名。 4、視圖函數(shù)中的表單操作 在新版本的hello.py中,index()視圖函數(shù)渲染表單并接收其數(shù)據(jù)。示例4-4展示更新后的index()視圖函數(shù)。 示例4-4. hello...</p> <div id="qoyqs8suu2u" class="com_white-left-info"> <div id="qoyqs8suu2u" class="com_white-left-infol"> <a href="http://systransis.cn/yun/u-1624.html"><img src="http://systransis.cn/yun/data/avatar/000/00/16/small_000001624.jpg" alt=""><span id="qoyqs8suu2u" class="layui-hide64">yeooo</span></a> <time datetime="">2019-07-24 17:51</time> <span><i class="fa fa-commenting"></i>評(píng)論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div id="qoyqs8suu2u" class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>發(fā)表評(píng)論</span></h3> <div id="qoyqs8suu2u" class="xcp-publish-main flex_box_zd"> <div id="qoyqs8suu2u" class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陸后可評(píng)論</a> </div> </div> </div> <div id="qoyqs8suu2u" class="site-box-content"> <div id="qoyqs8suu2u" class="site-content-title"> <h3 class="top-com-title mb-64"><span>0條評(píng)論</span></h3> </div> <div id="qoyqs8suu2u" class="pages"></ul></div> </div> </div> <div id="qoyqs8suu2u" class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div id="qoyqs8suu2u" class=""> <div id="qoyqs8suu2u" class="com_layuiright-box user-msgbox"> <a href="http://systransis.cn/yun/u-1113.html"><img src="http://systransis.cn/yun/data/avatar/000/00/11/small_000001113.jpg" alt=""></a> <h3><a href="http://systransis.cn/yun/u-1113.html" rel="nofollow">eternalshallow</a></h3> <h6>男<span>|</span>高級(jí)講師</h6> <div id="qoyqs8suu2u" class="flex_box_zd user-msgbox-atten"> <a href="javascript:attentto_user(1113)" id="attenttouser_1113" class="grad follow-btn notfollow attention">我要關(guān)注</a> <a href="javascript:login()" title="發(fā)私信" >我要私信</a> </div> <div id="qoyqs8suu2u" class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="http://systransis.cn/yun/ut-1113.html" class="box_hxjz">閱讀更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/121442.html">如何提交百度新聞源?百度新聞源申請(qǐng)方法步驟</a></h3> <p>閱讀 1453<span>·</span>2021-09-28 09:44</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/121405.html">程序員年紀(jì)大了以后都去了哪里</a></h3> <p>閱讀 2519<span>·</span>2021-09-28 09:36</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/119503.html">NXP RT1064學(xué)習(xí)筆記(一)— 開(kāi)發(fā)環(huán)境</a></h3> <p>閱讀 1189<span>·</span>2021-09-08 09:35</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/112744.html">css總結(jié)</a></h3> <p>閱讀 1992<span>·</span>2019-08-29 13:50</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/112641.html">如何使用Flexbox和CSS Grid,實(shí)現(xiàn)高效布局</a></h3> <p>閱讀 820<span>·</span>2019-08-29 13:29</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/112475.html">史上前端面試最全問(wèn)答(附答案)</a></h3> <p>閱讀 1142<span>·</span>2019-08-29 13:15</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/112301.html">前端面試題2017(篇幅長(zhǎng),附答案)</a></h3> <p>閱讀 1735<span>·</span>2019-08-29 13:00</p></li> <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/110072.html">巧用命令行工具UCloud CLI,輕量操作API管理云資源</a></h3> <p>閱讀 3003<span>·</span>2019-08-26 16:16</p></li> </ul> </div> <!-- 文章詳情右側(cè)廣告--> <div id="qoyqs8suu2u" class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活動(dòng)</span></h6> <div id="qoyqs8suu2u" class="com_adbox"> <div id="qoyqs8suu2u" class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="http://systransis.cn/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="http://systransis.cn/yun/data/attach/240625/2rTjEHmi.png" alt="云服務(wù)器"> </a> </div> <div> <a href="http://systransis.cn/site/product/gpu.html" rel="nofollow"> <img src="http://systransis.cn/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服務(wù)器"> </a> </div> </div> </div> </div> <!-- banner結(jié)束 --> <div id="qoyqs8suu2u" class="adhtml"> </div> <script> $(function(){ $.ajax({ type: "GET", url:"http://systransis.cn/yun/ad/getad/1.html", cache: false, success: function(text){ $(".adhtml").html(text); } }); }) </script> </div> </div> </div> </div> </div> </section> <!-- wap拉出按鈕 --> <div id="qoyqs8suu2u" class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩層 --> <div id="qoyqs8suu2u" class="site-mobile-shade"></div> <!--付費(fèi)閱讀 --> <div class="qoyqs8suu2u" id="payread"> <div id="qoyqs8suu2u" class="layui-form-item">閱讀需要支付1元查看</div> <div id="qoyqs8suu2u" class="layui-form-item"><button class="btn-right">支付并查看</button></div> </div> <script> var prei=0; $(".site-seo-depict pre").each(function(){ var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">',''); $(this).attr('data-clipboard-text',html).attr("id","pre"+prei); $(this).html("").append("<code>"+html+"</code>"); prei++; }) $(".site-seo-depict img").each(function(){ if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){ $(this).remove(); } }) $("LINK[href*='style-49037e4d27.css']").remove(); $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove(); layui.use(['jquery', 'layer','code'], function(){ $("pre").attr("class","layui-code"); $("pre").attr("lay-title",""); $("pre").attr("lay-skin",""); layui.code(); $(".layui-code-h3 a").attr("class","copycode").html("復(fù)制代碼 ").attr("onclick","copycode(this)"); }); function copycode(target){ var id=$(target).parent().parent().attr("id"); var clipboard = new ClipboardJS("#"+id); clipboard.on('success', function(e) { e.clearSelection(); alert("復(fù)制成功") }); clipboard.on('error', function(e) { alert("復(fù)制失敗") }); } //$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5)); </script> <link rel="stylesheet" type="text/css" href="http://systransis.cn/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <script src="http://systransis.cn/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script> <script src="http://systransis.cn/yun/static/js/clipboard.js"></script> <script>hljs.initHighlightingOnLoad();</script> <script> function setcode(){ var _html=''; document.querySelectorAll('pre code').forEach((block) => { var _tmptext=$.trim($(block).text()); if(_tmptext!=''){ _html=_html+_tmptext; console.log(_html); } }); } </script> <script> function payread(){ layer.open({ type: 1, title:"付費(fèi)閱讀", shadeClose: true, content: $('#payread') }); } // 舉報(bào) function jupao_tip(){ layer.open({ type: 1, title:false, shadeClose: true, content: $('#jubao') }); } $(".getcommentlist").click(function(){ var _id=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); $("#articlecommentlist"+_id).toggleClass("hide"); var flag=$("#articlecommentlist"+_id).attr("dataflag"); if(flag==1){ flag=0; }else{ flag=1; //加載評(píng)論 loadarticlecommentlist(_id,_tid); } $("#articlecommentlist"+_id).attr("dataflag",flag); }) $(".add-comment-btn").click(function(){ var _id=$(this).attr("dataid"); $(".formcomment"+_id).toggleClass("hide"); }) $(".btn-sendartcomment").click(function(){ var _aid=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); var _content=$.trim($(".commenttext"+_aid).val()); if(_content==''){ alert("評(píng)論內(nèi)容不能為空"); return false; } var touid=$("#btnsendcomment"+_aid).attr("touid"); if(touid==null){ touid=0; } addarticlecomment(_tid,_aid,_content,touid); }) $(".button_agree").click(function(){ var supportobj = $(this); var tid = $(this).attr("id"); $.ajax({ type: "GET", url:"http://systransis.cn/yun/index.php?topic/ajaxhassupport/" + tid, cache: false, success: function(hassupport){ if (hassupport != '1'){ $.ajax({ type: "GET", cache:false, url: "http://systransis.cn/yun/index.php?topic/ajaxaddsupport/" + tid, success: function(comments) { supportobj.find("span").html(comments+"人贊"); } }); }else{ alert("您已經(jīng)贊過(guò)"); } } }); }); function attenquestion(_tid,_rs){ $.ajax({ //提交數(shù)據(jù)的類(lèi)型 POST GET type:"POST", //提交的網(wǎng)址 url:"http://systransis.cn/yun/favorite/topicadd.html", //提交的數(shù)據(jù) data:{tid:_tid,rs:_rs}, //返回?cái)?shù)據(jù)的格式 datatype: "json",//"xml", "html", "script", "json", "jsonp", "text". //在請(qǐng)求之前調(diào)用的函數(shù) beforeSend:function(){}, //成功返回之后調(diào)用的函數(shù) success:function(data){ var data=eval("("+data+")"); console.log(data) if(data.code==2000){ layer.msg(data.msg,function(){ if(data.rs==1){ //取消收藏 $(".layui-layer-tips").attr("data-tips","收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>'); } if(data.rs==0){ //收藏成功 $(".layui-layer-tips").attr("data-tips","已收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart"></i>') } }) }else{ layer.msg(data.msg) } } , //調(diào)用執(zhí)行后調(diào)用的函數(shù) complete: function(XMLHttpRequest, textStatus){ postadopt=true; }, //調(diào)用出錯(cuò)執(zhí)行的函數(shù) error: function(){ //請(qǐng)求出錯(cuò)處理 postadopt=false; } }); } </script> <footer> <div id="qoyqs8suu2u" class="layui-container"> <div id="qoyqs8suu2u" class="flex_box_zd"> <div id="qoyqs8suu2u" class="left-footer"> <h6><a href="http://systransis.cn/"><img src="http://systransis.cn/yun/static/theme/ukd//images/logo.png" alt="UCloud (優(yōu)刻得科技股份有限公司)"></a></h6> <p>UCloud (優(yōu)刻得科技股份有限公司)是中立、安全的云計(jì)算服務(wù)平臺(tái),堅(jiān)持中立,不涉足客戶(hù)業(yè)務(wù)領(lǐng)域。公司自主研發(fā)IaaS、PaaS、大數(shù)據(jù)流通平臺(tái)、AI服務(wù)平臺(tái)等一系列云計(jì)算產(chǎn)品,并深入了解互聯(lián)網(wǎng)、傳統(tǒng)企業(yè)在不同場(chǎng)景下的業(yè)務(wù)需求,提供公有云、混合云、私有云、專(zhuān)有云在內(nèi)的綜合性行業(yè)解決方案。</p> </div> <div id="qoyqs8suu2u" class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud與云服務(wù)</h6> <p><a href="http://systransis.cn/site/about/intro/">公司介紹</a></p> <p><a >加入我們</a></p> <p><a href="http://systransis.cn/site/ucan/onlineclass/">UCan線(xiàn)上公開(kāi)課</a></p> <p><a href="http://systransis.cn/site/solutions.html" >行業(yè)解決方案</a></p> <p><a href="http://systransis.cn/site/pro-notice/">產(chǎn)品動(dòng)態(tài)</a></p> </li> <li> <h6>友情鏈接</h6> <p><a >GPU算力平臺(tái)</a></p> <p><a >UCloud私有云</a></p> <p><a >SurferCloud</a></p> <p><a >工廠(chǎng)仿真軟件</a></p> <p><a >Pinex</a></p> <p><a >AI繪畫(huà)</a></p> </li> <li> <h6>社區(qū)欄目</h6> <p><a href="http://systransis.cn/yun/column/index.html">專(zhuān)欄文章</a></p> <p><a href="http://systransis.cn/yun/udata/">專(zhuān)題地圖</a></p> </li> <li> <h6>常見(jiàn)問(wèn)題</h6> <p><a href="http://systransis.cn/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="http://systransis.cn/site/about/news/recent/" >新聞動(dòng)態(tài)</a></p> <p><a href="http://systransis.cn/site/about/news/report/">媒體動(dòng)態(tài)</a></p> <p><a href="http://systransis.cn/site/cases.html">客戶(hù)案例</a></p> <p><a href="http://systransis.cn/site/notice/">公告</a></p> </li> <li> <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="優(yōu)刻得"></span> <p>掃掃了解更多</p></div> </div> <div id="qoyqs8suu2u" class="copyright">Copyright ? 2012-2023 UCloud 優(yōu)刻得科技股份有限公司<i>|</i><a rel="nofollow" >滬公網(wǎng)安備 31011002000058號(hào)</a><i>|</i><a rel="nofollow" ></a> 滬ICP備12020087號(hào)-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://#/hm.js?290c2650b305fc9fff0dbdcafe48b59d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-DZSMXQ3P9N'); </script> <script> (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) </script></div> </div> </footer> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://systransis.cn/" title="成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费">成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费</a> <div class="friend-links"> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="sukgi" class="pl_css_ganrao" style="display: none;"><fieldset id="sukgi"></fieldset><small id="sukgi"></small><pre id="sukgi"></pre><fieldset id="sukgi"><optgroup id="sukgi"><tr id="sukgi"></tr></optgroup></fieldset><tbody id="sukgi"></tbody><th id="sukgi"></th><code id="sukgi"></code><tr id="sukgi"></tr><dfn id="sukgi"></dfn><noscript id="sukgi"></noscript><optgroup id="sukgi"></optgroup><dl id="sukgi"></dl><cite id="sukgi"><nav id="sukgi"><li id="sukgi"></li></nav></cite><menu id="sukgi"><li id="sukgi"><center id="sukgi"></center></li></menu><code id="sukgi"></code><pre id="sukgi"></pre><noframes id="sukgi"><kbd id="sukgi"><pre id="sukgi"></pre></kbd></noframes><option id="sukgi"></option><option id="sukgi"></option><pre id="sukgi"></pre><del id="sukgi"><dfn id="sukgi"><td id="sukgi"></td></dfn></del><sup id="sukgi"></sup><optgroup id="sukgi"></optgroup><tbody id="sukgi"></tbody><th id="sukgi"></th><table id="sukgi"></table><dl id="sukgi"></dl><bdo id="sukgi"></bdo><source id="sukgi"></source><noscript id="sukgi"></noscript><acronym id="sukgi"></acronym><li id="sukgi"><acronym id="sukgi"><xmp id="sukgi"></xmp></acronym></li><code id="sukgi"><table id="sukgi"><tr id="sukgi"></tr></table></code><source id="sukgi"><small id="sukgi"><noframes id="sukgi"></noframes></small></source><rt id="sukgi"></rt><pre id="sukgi"></pre><dfn id="sukgi"></dfn><tr id="sukgi"></tr><dfn id="sukgi"></dfn><cite id="sukgi"><nav id="sukgi"><kbd id="sukgi"></kbd></nav></cite><sup id="sukgi"><center id="sukgi"><dl id="sukgi"></dl></center></sup><rt id="sukgi"></rt><option id="sukgi"></option><dfn id="sukgi"></dfn><del id="sukgi"><dfn id="sukgi"><td id="sukgi"></td></dfn></del><center id="sukgi"><dd id="sukgi"><th id="sukgi"></th></dd></center><delect id="sukgi"><tr id="sukgi"><rt id="sukgi"></rt></tr></delect><button id="sukgi"></button><noscript id="sukgi"></noscript><pre id="sukgi"></pre><del id="sukgi"><tr id="sukgi"><rt id="sukgi"></rt></tr></del><abbr id="sukgi"><pre id="sukgi"><blockquote id="sukgi"></blockquote></pre></abbr><small id="sukgi"></small><cite id="sukgi"></cite><source id="sukgi"></source><nav id="sukgi"></nav><blockquote id="sukgi"></blockquote><ul id="sukgi"></ul><dd id="sukgi"></dd><tr id="sukgi"></tr><tfoot id="sukgi"><object id="sukgi"><small id="sukgi"></small></object></tfoot><wbr id="sukgi"><cite id="sukgi"><abbr id="sukgi"></abbr></cite></wbr><cite id="sukgi"></cite><dfn id="sukgi"></dfn><th id="sukgi"></th><delect id="sukgi"></delect><pre id="sukgi"><center id="sukgi"><dl id="sukgi"></dl></center></pre><center id="sukgi"></center><object id="sukgi"></object><tbody id="sukgi"></tbody><nav id="sukgi"></nav><ul id="sukgi"><pre id="sukgi"><source id="sukgi"></source></pre></ul><abbr id="sukgi"></abbr><tr id="sukgi"><rt id="sukgi"><code id="sukgi"></code></rt></tr><fieldset id="sukgi"><table id="sukgi"><abbr id="sukgi"></abbr></table></fieldset><input id="sukgi"><tbody id="sukgi"><button id="sukgi"></button></tbody></input><abbr id="sukgi"></abbr><tbody id="sukgi"></tbody><object id="sukgi"><tbody id="sukgi"><button id="sukgi"></button></tbody></object><center id="sukgi"></center><blockquote id="sukgi"><dl id="sukgi"><input id="sukgi"></input></dl></blockquote><tbody id="sukgi"></tbody><option id="sukgi"></option><button id="sukgi"></button><ul id="sukgi"></ul><ul id="sukgi"><pre id="sukgi"><wbr id="sukgi"></wbr></pre></ul><tbody id="sukgi"></tbody><fieldset id="sukgi"></fieldset><input id="sukgi"><tbody id="sukgi"><button id="sukgi"></button></tbody></input><center id="sukgi"></center><source id="sukgi"></source><wbr id="sukgi"><cite id="sukgi"><nav id="sukgi"></nav></cite></wbr><td id="sukgi"></td><dl id="sukgi"></dl><nav id="sukgi"></nav><source id="sukgi"></source><tbody id="sukgi"></tbody><nav id="sukgi"><kbd id="sukgi"><center id="sukgi"></center></kbd></nav><dfn id="sukgi"></dfn><tbody id="sukgi"></tbody><noscript id="sukgi"></noscript><optgroup id="sukgi"></optgroup><tfoot id="sukgi"><object id="sukgi"><small id="sukgi"></small></object></tfoot><dfn id="sukgi"></dfn><tbody id="sukgi"></tbody><button id="sukgi"></button><button id="sukgi"><blockquote id="sukgi"><dl id="sukgi"></dl></blockquote></button><noframes id="sukgi"><ul id="sukgi"><pre id="sukgi"></pre></ul></noframes><samp id="sukgi"><tfoot id="sukgi"><input id="sukgi"></input></tfoot></samp><pre id="sukgi"></pre><optgroup id="sukgi"></optgroup><th id="sukgi"></th><fieldset id="sukgi"></fieldset><ul id="sukgi"></ul><button id="sukgi"></button><tr id="sukgi"></tr><tbody id="sukgi"></tbody><th id="sukgi"></th><acronym id="sukgi"></acronym><optgroup id="sukgi"></optgroup><delect id="sukgi"><tr id="sukgi"><s id="sukgi"></s></tr></delect><center id="sukgi"><wbr id="sukgi"><cite id="sukgi"></cite></wbr></center><option id="sukgi"></option><strong id="sukgi"><abbr id="sukgi"><kbd id="sukgi"></kbd></abbr></strong><bdo id="sukgi"></bdo><dd id="sukgi"><cite id="sukgi"><menu id="sukgi"></menu></cite></dd><center id="sukgi"><dd id="sukgi"><th id="sukgi"></th></dd></center><small id="sukgi"></small><noframes id="sukgi"><samp id="sukgi"><pre id="sukgi"></pre></samp></noframes><tbody id="sukgi"></tbody><tr id="sukgi"></tr><samp id="sukgi"><tbody id="sukgi"><wbr id="sukgi"></wbr></tbody></samp><bdo id="sukgi"></bdo><noscript id="sukgi"><em id="sukgi"><delect id="sukgi"></delect></em></noscript><fieldset id="sukgi"></fieldset><center id="sukgi"><wbr id="sukgi"><th id="sukgi"></th></wbr></center><center id="sukgi"><dd id="sukgi"><th id="sukgi"></th></dd></center><noframes id="sukgi"><ul id="sukgi"><pre id="sukgi"></pre></ul></noframes><wbr id="sukgi"><cite id="sukgi"><nav id="sukgi"></nav></cite></wbr><tbody id="sukgi"></tbody><tr id="sukgi"></tr><center id="sukgi"><source id="sukgi"><cite id="sukgi"></cite></source></center><noscript id="sukgi"></noscript><tbody id="sukgi"></tbody><center id="sukgi"></center><acronym id="sukgi"></acronym><blockquote id="sukgi"><tfoot id="sukgi"><input id="sukgi"></input></tfoot></blockquote><tbody id="sukgi"></tbody><tr id="sukgi"></tr><tfoot id="sukgi"><object id="sukgi"><small id="sukgi"></small></object></tfoot></div> <script src="http://systransis.cn/yun/static/theme/ukd/js/common.js"></script> <<script type="text/javascript"> $(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%"); </script> </html>