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

資訊專欄INFORMATION COLUMN

Flask Web Development —— 模板(中)

eternalshallow / 1571人閱讀

摘要:示例使用的模板的指令通過從引用來實現模板的繼承。上面的模板定義了三個,分別命名為和。同時返回相應錯誤的數字狀態碼。示例帶有導航欄的基礎應用程序模板這個模板中的塊中只是一個名為的元素,它包含了在派生模板中定義的名為的空。

2、集成Twitter Bootstrap的Flask-Bootstrap

Bootstrap是Twitter的一個開源框架,提供用戶交互組件來創建一個清新且有吸引力的web頁面,并兼容所有現代web瀏覽器。

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

集成Bootstrap到應用程序最好的方式是在模板中做一些必要的改變。一個簡單點的途徑就是使用Flask-Bootstrap擴展去簡化集成工作。可以通過pip來安裝Flask-Bootstrap:

(venv) $ pip install flask-bootstrap

Flask擴展通常在應用程序實例被創建的時候初始化。示例3-4展示Flask-Bootstrap的初始化。

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

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

和第二章的Flask-Script一樣,Flask-Bootstrap從flask.ext命名空間導入并通過傳遞應用程序實例到構造函數來初始化。

一旦Flask-Bootstrap被初始化,一個包含所有Bootstrap文件的基礎模板就可供應用程序使用了。這個模板利用Jinja2的模板繼承,應用程序則可以擴展一個擁有通用頁面結構,且包含Bootstrap導入的元素的基礎模板。示例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指令通過從Flask-Bootstrap引用bootstrap/base.html來實現模板的繼承。Flask-Bootstrap的基礎模板提供一個包含Bootstrap CSS和JavaScript文件的web頁面骨架。

基礎模板定義了一些可以被派生模板重寫的blockblockendblock指令定義了被添加到基礎模板中block的內容。

上面的user.html模板定義了三個block,分別命名為titlenavbarcontent。基礎模板里的這些block輸出派生模板定義的內容。title塊比較簡單;它的內容將出現在</b>標簽內,然后被渲染在HTML文檔的頭部 。<b>navbar</b>和<b>content</b>塊則是為頁面保留的導航欄和主內容。</p> <p>在這個模板中,<b>navbar</b>塊使用Bootstrap組件定義了一個簡單的導航欄。<b>content</b>塊有個名為<b>container</b>的<b><div></b>,里面嵌套了名為<b>page-header</b>的<b><div></b>。圖3-1展示這些操作后應用程序長成啥樣了。</p> <pre> <p>建議:如果你有克隆在GitHub上的應用程序,你現在可以運行<b>git checkout 3b</b>來切換到這個版本的應用程序。Bootstrap官方文檔 是一個非常強大的學習資料,完全可以復制粘貼使用那些示例。</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基礎模板中的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自身,所以直接重寫它們會引發問題。例如,<b>styles</b>和<b>scripts</b>塊是Bootstrap定義文件的地方。如果應用程序需要新增自己的內容到已經有一些內容的塊中,則必須使用Jinja2的<b>super()</b>。例如,如何在派生模板中寫<b>scripts</b>塊,來給文檔增加新的JavaScript文件:</p> <pre>{% block scripts %} {{ super() }} <script type="text/javascript" src="my-script.js"></script> {% endblock %} </pre> <b>3、自定義錯誤頁面</b> <p>當你輸入錯誤路徑在你的瀏覽器地址欄,你會得到404錯誤代碼頁面。目前的錯誤頁面很普通也沒有吸引力,且沒有一致的使用Bootstrap頁面。</p> <p>Flask允許應用程序自定義基于模板的錯誤頁面,就像常規的路由。兩個最常見的錯誤代碼,404是在客戶端請求的頁面或路徑不存在的時候觸發;500是當存在未處理的異常時觸發。示例3-6展示如何為這兩個錯誤提供自定義處理。</p> <p><em>示例3-6. hello.py:自定義錯誤頁面</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>錯誤處理返回響應,和視圖函數一樣。同時返回相應錯誤的數字狀態碼。</p> <p>在錯誤處理中引用的模板需要自己去寫。這些模板需要和常規的頁面一樣的布局,所以在這個示例中需要導航欄和頁面頭部顯示錯誤信息。</p> <p>編寫這些模板的簡單方式是復制<b>templates/user.html</b>到<b>templates/404.html</b>和<b>templates/500.html</b>,然后改變這兩個新文件的頁面頭部元素來給出相應的錯誤信息,但這會產生很多副本。</p> <p>Jinja2的模板繼承可以幫助我們解決這個問題。Flask-Bootstrap提供了一個帶有基本布局頁面的基礎模板,應用程序可以定義自己的、帶有完整頁面布局的基礎模板,包括導航欄和定義在派生模板中的頁面內容。示例3-7展示了<b>templates/base.html</b>,它是一個繼承自<b>bootstrap/base.html</b>的新模板且定義了導航欄,但對于其他模板則是一個基礎模板,例如<b>templates/user.html</b>、<b>templates/404.html</b>和<b>templates/500.html</b>。</p> <p>_示例3-7. templates/base.html:帶有導航欄的基礎應用程序模板</p> <pre>{% extends "bootstrap/base.html" %} {% block title %}Flasky{% endblock %} {% block navbar %} <div id="cuagccq" class="navbar navbar-inverse" role="navigation"> <div id="m2uk2sg" class="container"> <div id="ak2yqq0" class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span id="iu2qg0i" class="sr-only">Toggle navigation</span> <span id="iq2w0cq" class="icon-bar"></span> <span id="20ci2qe" class="icon-bar"></span> <span id="imgagwc" class="icon-bar"></span> </button> <a class="navbar-brand" href="/">Flasky</a> </div> <div id="squagig" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a href="/">Home</a></li> </ul> </div> </div> </div> {% endblock %} {% block content %} <div id="aqimes2" class="container"> {% block page_content %}{% endblock %} </div> {% endblock %} </pre> <p>這個模板中的<b>content</b>塊中只是一個名為<b>container</b>的<b><div></b>元素,它包含了在派生模板中定義的名為<b>page_content</b>的空block。</p> <p>應用程序的模板將從該模板繼承而不是直接從Flask-Bootstrap繼承。示例3-8展示了從<b>templates/base.html</b>繼承來構造一個自定義404錯誤頁面是如此的簡單。</p> <p><em>示例3-8. <b>templates/404.html</b>:使用模板繼承自定義404錯誤頁面</em></p> <pre>{% extends "base.html" %} {% block title %}Flasky - Page Not Found{% endblock %} {% block page_content %} <div id="igy0q0e" class="page-header"> <h1>Not Found</h1> </div> {% endblock %} </pre> <p>圖片3-2展示在瀏覽器中錯誤頁面是怎樣的。</p> <p><script type="text/javascript">showImg("http://young-py.github.io/imgs/flask3-04.png");</script></p> <p><em>圖片3-2. 自定義404錯誤頁面</em></p> <p>現在<b>templates/user.html</b>模板可以通過繼承基礎模板來簡化它,就像示例3-9展示的這樣。</p> <p><em>示例3-9. templates/user.html:使用模板繼承簡化頁面模板</em></p> <pre>{% extends "base.html" %} {% block title %}Flasky{% endblock %} {% block page_content %} <div id="segagwk" class="page-header"> <h1>Hello, {{ name }}!</h1> </div> {% endblock %} </pre> <pre> <p>建議:如果你有克隆在GitHub上的應用程序,你現在可以運行<b>git checkout 3c</b>來切換到這個版本的應用程序。</p> </pre> </div> <div id="igmeii2" class="mt-64 tags-seach" > <div id="4c00y22" class="tags-info"> <a style="width:120px;" title="GPU云服務器" href="http://specialneedsforspecialkids.com/site/product/gpu.html">GPU云服務器</a> <a style="width:120px;" title="云服務器" href="http://specialneedsforspecialkids.com/site/active/kuaijiesale.html?ytag=seo">云服務器</a> <a style="width:120px;" title="web-development" href="http://specialneedsforspecialkids.com/yun/tag/web-development/">web-development</a> <a style="width:120px;" title="Flask_Web" href="http://specialneedsforspecialkids.com/yun/tag/Flask_Web/">Flask_Web</a> <a style="width:120px;" title="web模板" href="http://specialneedsforspecialkids.com/yun/tag/webmoban/">web模板</a> <a style="width:120px;" title="Development" href="http://specialneedsforspecialkids.com/yun/tag/Development/">Development</a> </div> </div> <div id="cc0wq0o" class="entry-copyright mb-30"> <p class="mb-15"> 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。</p> <p>轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37433.html</p> </div> <ul class="pre-next-page"> <li id="kqiykoe" class="ellipsis"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/37432.html">上一篇:[零基礎學python]通過Python連接數據庫</a></li> <li id="me2ko2e" class="ellipsis"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/37434.html">下一篇:flask 跨域訪問裝飾器實現</a></li> </ul> </div> <div id="ysyc0cq" class="about_topicone-mid"> <h3 class="top-com-title mb-0"><span data-id="0">相關文章</span></h3> <ul class="com_white-left-mid atricle-list-box"> <li> <div id="mskosuk" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/37454.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>Web</em>表單(上)</b></a></h2> <p class="ellipsis2 good">摘要:每個表單域都可以連接到一個或多個是一個用于檢查用戶提交的輸入是否合法的函數。表單域構造函數的第一個參數是一個,在渲染表單到時會使用。驗證確保提交的表單域不為空。表單域驗證都是直接從包中導入。表格展示了一組支持的標準表單域。 第二章中介紹的request對象公開了所有客戶端發送的請求信息。特別是request.form可以訪問POST請求提交的表單數據。 盡管Flask的request...</p> <div id="umi2gui" class="com_white-left-info"> <div id="0yekocc" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-336.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/03/small_000000336.jpg" alt=""><span id="gwysy0g" class="layui-hide64">CODING</span></a> <time datetime="">2019-07-24 17:49</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="swewos2" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/37461.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>模板</em>(下)</b></a></h2> <p class="ellipsis2 good">摘要:如果路由重組,模板中的鏈接將被打斷而變得無法訪問。靜態文件應用程序不僅僅是由代碼和模板組成。當服務器收到來自之前示例的,它會產生一個響應包含的文件內容。一個優雅的解決方案是允許服務器只發送時間給瀏覽器,由瀏覽器轉為當地時間并渲染。 4、鏈接 任何應用程序都有多個路由,必然需要包含鏈接來連接不同的頁面,例如導航欄。 在模板中,對于簡單的路由直接寫URLs做鏈接是非常瑣碎麻煩的,而給帶...</p> <div id="kuko2gg" class="com_white-left-info"> <div id="cu22ma0" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-697.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/06/small_000000697.jpg" alt=""><span id="we2kaoo" class="layui-hide64">raoyi</span></a> <time datetime="">2019-07-24 17:49</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="2qi2esu" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/37435.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>模板</em>(上)</b></a></h2> <p class="ellipsis2 good">摘要:用真實的值替換變量并返回最終響應字符串,這個過程稱為渲染。示例展示模板實現該響應。控制結構提供一些控制結構用于改變模板流。這個示例展示如何使用循環做到這些同樣支持宏,這和代碼中的函數很像。 寫代碼最關鍵的是要易于維護且結構清晰整潔。目前為止,你看到的例子都過于簡單從而沒有做這方面的要求。Flask視圖函數希望將兩個應該完全獨立的任務一并處理,兩個任務有兩種代碼,一并處理勢必會引發問題。...</p> <div id="omgowai" class="com_white-left-info"> <div id="guqi2qq" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-654.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/06/small_000000654.jpg" alt=""><span id="20q0c2g" class="layui-hide64">fizz</span></a> <time datetime="">2019-07-24 17:47</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="y2yqseg" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/45324.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— Email</b></a></h2> <p class="ellipsis2 good">摘要:函數攜帶目的地址主題郵件體模板和一組關鍵字參數。許多擴展操作是在假設有活動的應用程序和請求上下文的情況下進行的。但是當函數在一個不同的線程上執行,應用程序上下文需要人為地創建使用。例如,執行函數可以將郵件發送到的任務隊列中。 許多類型的應用程序都會在某些事件發生的時候通知用戶,常用的溝通方法就是電子郵件。盡管在Flask應用程序中,可以使用Python標準庫中的smtplib包來發送電...</p> <div id="oocekiw" class="com_white-left-info"> <div id="2agy2o0" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-999.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/09/small_000000999.jpg" alt=""><span id="iqiswcu" class="layui-hide64">SKYZACK</span></a> <time datetime="">2019-07-31 11:35</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="ym2ek0e" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/37475.html"><b><em>Flask</em> <em>Web</em> <em>Development</em> —— <em>Web</em>表單(下)</b></a></h2> <p class="ellipsis2 good">摘要:局部變量用于保存從表單中接收到的名字,初始化時變量為。在語句中,這個名字被賦值給局部變量且表單域的數據屬性通過賦值為空字符串而被清除。示例重定向和用戶會話在上一個版本中,局部變量用于保存用戶在表單中輸入的姓名。 4、視圖函數中的表單操作 在新版本的hello.py中,index()視圖函數渲染表單并接收其數據。示例4-4展示更新后的index()視圖函數。 示例4-4. hello...</p> <div id="e2cgkma" class="com_white-left-info"> <div id="eqsauww" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-1624.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/16/small_000001624.jpg" alt=""><span id="e2cimc0" class="layui-hide64">yeooo</span></a> <time datetime="">2019-07-24 17:51</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div id="ssog2gs" class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>發表評論</span></h3> <div id="uyqsyiw" class="xcp-publish-main flex_box_zd"> <div id="m2s0geu" class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陸后可評論</a> </div> </div> </div> <div id="q2mooeq" class="site-box-content"> <div id="s2qiaym" class="site-content-title"> <h3 class="top-com-title mb-64"><span>0條評論</span></h3> </div> <div id="e0gosgi" class="pages"></ul></div> </div> </div> <div id="iyey0su" class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div id="a2k2sg2" class=""> <div id="u2w2wim" class="com_layuiright-box user-msgbox"> <a href="http://specialneedsforspecialkids.com/yun/u-1113.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/11/small_000001113.jpg" alt=""></a> <h3><a href="http://specialneedsforspecialkids.com/yun/u-1113.html" rel="nofollow">eternalshallow</a></h3> <h6>男<span>|</span>高級講師</h6> <div id="iwcgoya" class="flex_box_zd user-msgbox-atten"> <a href="javascript:attentto_user(1113)" id="attenttouser_1113" class="grad follow-btn notfollow attention">我要關注</a> <a href="javascript:login()" title="發私信" >我要私信</a> </div> <div id="a2agoga" class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="http://specialneedsforspecialkids.com/yun/ut-1113.html" class="box_hxjz">閱讀更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/121442.html">如何提交百度新聞源?百度新聞源申請方法步驟</a></h3> <p>閱讀 1438<span>·</span>2021-09-28 09:44</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/121405.html">程序員年紀大了以后都去了哪里</a></h3> <p>閱讀 2501<span>·</span>2021-09-28 09:36</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/119503.html">NXP RT1064學習筆記(一)— 開發環境</a></h3> <p>閱讀 1144<span>·</span>2021-09-08 09:35</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/112744.html">css總結</a></h3> <p>閱讀 1982<span>·</span>2019-08-29 13:50</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/112641.html">如何使用Flexbox和CSS Grid,實現高效布局</a></h3> <p>閱讀 810<span>·</span>2019-08-29 13:29</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/112475.html">史上前端面試最全問答(附答案)</a></h3> <p>閱讀 1130<span>·</span>2019-08-29 13:15</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/112301.html">前端面試題2017(篇幅長,附答案)</a></h3> <p>閱讀 1724<span>·</span>2019-08-29 13:00</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/110072.html">巧用命令行工具UCloud CLI,輕量操作API管理云資源</a></h3> <p>閱讀 2988<span>·</span>2019-08-26 16:16</p></li> </ul> </div> <!-- 文章詳情右側廣告--> <div id="sgk4c0q" class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活動</span></h6> <div id="oew0ueg" class="com_adbox"> <div id="egmgwym" class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="http://specialneedsforspecialkids.com/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="http://specialneedsforspecialkids.com/yun/data/attach/240625/2rTjEHmi.png" alt="云服務器"> </a> </div> <div> <a href="http://specialneedsforspecialkids.com/site/product/gpu.html" rel="nofollow"> <img src="http://specialneedsforspecialkids.com/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服務器"> </a> </div> </div> </div> </div> <!-- banner結束 --> <div id="q2c0aao" class="adhtml"> </div> <script> $(function(){ $.ajax({ type: "GET", url:"http://specialneedsforspecialkids.com/yun/ad/getad/1.html", cache: false, success: function(text){ $(".adhtml").html(text); } }); }) </script> </div> </div> </div> </div> </div> </section> <!-- wap拉出按鈕 --> <div id="kiawacs" class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩層 --> <div id="4y0gcac" class="site-mobile-shade"></div> <!--付費閱讀 --> <div class="gu0ogk0" id="payread"> <div id="2gy2uwi" class="layui-form-item">閱讀需要支付1元查看</div> <div id="oaioegw" 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("復制代碼 ").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("復制成功") }); clipboard.on('error', function(e) { alert("復制失敗") }); } //$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5)); </script> <link rel="stylesheet" type="text/css" href="http://specialneedsforspecialkids.com/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <script src="http://specialneedsforspecialkids.com/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script> <script src="http://specialneedsforspecialkids.com/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:"付費閱讀", shadeClose: true, content: $('#payread') }); } // 舉報 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; //加載評論 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("評論內容不能為空"); 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://specialneedsforspecialkids.com/yun/index.php?topic/ajaxhassupport/" + tid, cache: false, success: function(hassupport){ if (hassupport != '1'){ $.ajax({ type: "GET", cache:false, url: "http://specialneedsforspecialkids.com/yun/index.php?topic/ajaxaddsupport/" + tid, success: function(comments) { supportobj.find("span").html(comments+"人贊"); } }); }else{ alert("您已經贊過"); } } }); }); function attenquestion(_tid,_rs){ $.ajax({ //提交數據的類型 POST GET type:"POST", //提交的網址 url:"http://specialneedsforspecialkids.com/yun/favorite/topicadd.html", //提交的數據 data:{tid:_tid,rs:_rs}, //返回數據的格式 datatype: "json",//"xml", "html", "script", "json", "jsonp", "text". //在請求之前調用的函數 beforeSend:function(){}, //成功返回之后調用的函數 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) } } , //調用執行后調用的函數 complete: function(XMLHttpRequest, textStatus){ postadopt=true; }, //調用出錯執行的函數 error: function(){ //請求出錯處理 postadopt=false; } }); } </script> <footer> <div id="wekew2i" class="layui-container"> <div id="sqyq0ma" class="flex_box_zd"> <div id="acuq2gu" class="left-footer"> <h6><a href="http://specialneedsforspecialkids.com/"><img src="http://specialneedsforspecialkids.com/yun/static/theme/ukd//images/logo.png" alt="UCloud (優刻得科技股份有限公司)"></a></h6> <p>UCloud (優刻得科技股份有限公司)是中立、安全的云計算服務平臺,堅持中立,不涉足客戶業務領域。公司自主研發IaaS、PaaS、大數據流通平臺、AI服務平臺等一系列云計算產品,并深入了解互聯網、傳統企業在不同場景下的業務需求,提供公有云、混合云、私有云、專有云在內的綜合性行業解決方案。</p> </div> <div id="q2iwkya" class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud與云服務</h6> <p><a href="http://specialneedsforspecialkids.com/site/about/intro/">公司介紹</a></p> <p><a >加入我們</a></p> <p><a href="http://specialneedsforspecialkids.com/site/ucan/onlineclass/">UCan線上公開課</a></p> <p><a href="http://specialneedsforspecialkids.com/site/solutions.html" >行業解決方案</a></p> <p><a href="http://specialneedsforspecialkids.com/site/pro-notice/">產品動態</a></p> </li> <li> <h6>友情鏈接</h6> <p><a >GPU算力平臺</a></p> <p><a >UCloud私有云</a></p> <p><a >SurferCloud</a></p> <p><a >工廠仿真軟件</a></p> <p><a >Pinex</a></p> <p><a >AI繪畫</a></p> </li> <li> <h6>社區欄目</h6> <p><a href="http://specialneedsforspecialkids.com/yun/column/index.html">專欄文章</a></p> <p><a href="http://specialneedsforspecialkids.com/yun/udata/">專題地圖</a></p> </li> <li> <h6>常見問題</h6> <p><a href="http://specialneedsforspecialkids.com/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="http://specialneedsforspecialkids.com/site/about/news/recent/" >新聞動態</a></p> <p><a href="http://specialneedsforspecialkids.com/site/about/news/report/">媒體動態</a></p> <p><a href="http://specialneedsforspecialkids.com/site/cases.html">客戶案例</a></p> <p><a href="http://specialneedsforspecialkids.com/site/notice/">公告</a></p> </li> <li> <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="優刻得"></span> <p>掃掃了解更多</p></div> </div> <div id="iwc2ceq" class="copyright">Copyright ? 2012-2023 UCloud 優刻得科技股份有限公司<i>|</i><a rel="nofollow" >滬公網安備 31011002000058號</a><i>|</i><a rel="nofollow" ></a> 滬ICP備12020087號-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.baidu.com/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://specialneedsforspecialkids.com/" title="国产xxxx99真实实拍">国产xxxx99真实实拍</a> <div class="friend-links"> <a href="http://belistarlp.com/">国产黄色在线</a> </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="kcq0s" class="pl_css_ganrao" style="display: none;"><acronym id="kcq0s"></acronym><acronym id="kcq0s"></acronym><center id="kcq0s"></center><small id="kcq0s"><option id="kcq0s"><delect id="kcq0s"></delect></option></small><li id="kcq0s"></li><noframes id="kcq0s"></noframes><cite id="kcq0s"></cite><center id="kcq0s"></center><table id="kcq0s"></table><menu id="kcq0s"></menu><strong id="kcq0s"></strong><nav id="kcq0s"></nav><li id="kcq0s"><button id="kcq0s"><samp id="kcq0s"></samp></button></li><input id="kcq0s"></input><tr id="kcq0s"></tr><tbody id="kcq0s"></tbody><menu id="kcq0s"></menu><abbr id="kcq0s"></abbr><s id="kcq0s"><bdo id="kcq0s"><abbr id="kcq0s"></abbr></bdo></s><pre id="kcq0s"></pre><abbr id="kcq0s"></abbr><tbody id="kcq0s"></tbody><cite id="kcq0s"></cite><dd id="kcq0s"></dd><li id="kcq0s"></li><cite id="kcq0s"></cite><strike id="kcq0s"></strike><pre id="kcq0s"><xmp id="kcq0s"><strike id="kcq0s"></strike></xmp></pre><rt id="kcq0s"><code id="kcq0s"><noframes id="kcq0s"></noframes></code></rt><small id="kcq0s"><button id="kcq0s"><dd id="kcq0s"></dd></button></small><noscript id="kcq0s"></noscript><table id="kcq0s"></table><cite id="kcq0s"></cite><th id="kcq0s"><object id="kcq0s"><bdo id="kcq0s"></bdo></object></th><strike id="kcq0s"></strike><center id="kcq0s"></center><dfn id="kcq0s"></dfn><option id="kcq0s"></option><rt id="kcq0s"><tbody id="kcq0s"><em id="kcq0s"></em></tbody></rt><dd id="kcq0s"><th id="kcq0s"><object id="kcq0s"></object></th></dd><pre id="kcq0s"></pre><option id="kcq0s"></option><pre id="kcq0s"><xmp id="kcq0s"><strike id="kcq0s"></strike></xmp></pre><xmp id="kcq0s"><fieldset id="kcq0s"><menu id="kcq0s"></menu></fieldset></xmp><fieldset id="kcq0s"><table id="kcq0s"><tr id="kcq0s"></tr></table></fieldset><rt id="kcq0s"><code id="kcq0s"><noframes id="kcq0s"></noframes></code></rt><center id="kcq0s"></center><samp id="kcq0s"><dl id="kcq0s"><nav id="kcq0s"></nav></dl></samp><kbd id="kcq0s"></kbd><tr id="kcq0s"></tr><dl id="kcq0s"></dl><td id="kcq0s"></td><acronym id="kcq0s"></acronym><cite id="kcq0s"></cite><th id="kcq0s"><noframes id="kcq0s"><abbr id="kcq0s"></abbr></noframes></th><input id="kcq0s"></input><optgroup id="kcq0s"></optgroup><code id="kcq0s"><acronym id="kcq0s"><xmp id="kcq0s"></xmp></acronym></code><sup id="kcq0s"><rt id="kcq0s"><code id="kcq0s"></code></rt></sup><optgroup id="kcq0s"></optgroup><option id="kcq0s"></option><center id="kcq0s"><code id="kcq0s"><noframes id="kcq0s"></noframes></code></center><xmp id="kcq0s"><cite id="kcq0s"><table id="kcq0s"></table></cite></xmp><center id="kcq0s"></center><tr id="kcq0s"></tr><source id="kcq0s"><strong id="kcq0s"><nav id="kcq0s"></nav></strong></source><tr id="kcq0s"></tr><acronym id="kcq0s"></acronym><noscript id="kcq0s"></noscript><tbody id="kcq0s"></tbody><kbd id="kcq0s"><tr id="kcq0s"><wbr id="kcq0s"></wbr></tr></kbd><dd id="kcq0s"></dd><dd id="kcq0s"><th id="kcq0s"><object id="kcq0s"></object></th></dd><samp id="kcq0s"><dl id="kcq0s"><nav id="kcq0s"></nav></dl></samp><object id="kcq0s"></object><bdo id="kcq0s"><center id="kcq0s"><samp id="kcq0s"></samp></center></bdo><sup id="kcq0s"></sup><dl id="kcq0s"></dl><li id="kcq0s"><center id="kcq0s"><center id="kcq0s"></center></center></li><fieldset id="kcq0s"></fieldset><wbr id="kcq0s"></wbr><center id="kcq0s"></center><button id="kcq0s"><source id="kcq0s"><dl id="kcq0s"></dl></source></button><pre id="kcq0s"><xmp id="kcq0s"><strike id="kcq0s"></strike></xmp></pre><noscript id="kcq0s"></noscript><delect id="kcq0s"></delect><ul id="kcq0s"><strike id="kcq0s"><input id="kcq0s"></input></strike></ul><input id="kcq0s"></input><rt id="kcq0s"></rt><fieldset id="kcq0s"></fieldset><em id="kcq0s"><blockquote id="kcq0s"><tfoot id="kcq0s"></tfoot></blockquote></em><abbr id="kcq0s"></abbr><center id="kcq0s"></center><delect id="kcq0s"></delect><noframes id="kcq0s"></noframes><kbd id="kcq0s"></kbd><abbr id="kcq0s"></abbr><abbr id="kcq0s"></abbr><dfn id="kcq0s"></dfn><code id="kcq0s"></code><source id="kcq0s"><code id="kcq0s"><noframes id="kcq0s"></noframes></code></source><table id="kcq0s"></table><rt id="kcq0s"></rt><em id="kcq0s"><xmp id="kcq0s"><strike id="kcq0s"></strike></xmp></em><strike id="kcq0s"></strike><option id="kcq0s"><samp id="kcq0s"><tbody id="kcq0s"></tbody></samp></option><input id="kcq0s"></input><strong id="kcq0s"></strong><li id="kcq0s"><button id="kcq0s"><samp id="kcq0s"></samp></button></li><em id="kcq0s"></em><bdo id="kcq0s"></bdo><ul id="kcq0s"><sup id="kcq0s"><source id="kcq0s"></source></sup></ul><abbr id="kcq0s"><center id="kcq0s"><dd id="kcq0s"></dd></center></abbr><bdo id="kcq0s"><option id="kcq0s"><kbd id="kcq0s"></kbd></option></bdo><object id="kcq0s"></object><strong id="kcq0s"></strong><pre id="kcq0s"></pre><li id="kcq0s"></li><tfoot id="kcq0s"></tfoot><kbd id="kcq0s"></kbd><dfn id="kcq0s"></dfn><option id="kcq0s"></option><table id="kcq0s"></table><dl id="kcq0s"><optgroup id="kcq0s"><li id="kcq0s"></li></optgroup></dl><tr id="kcq0s"></tr><abbr id="kcq0s"><sup id="kcq0s"><source id="kcq0s"></source></sup></abbr><tr id="kcq0s"></tr><tbody id="kcq0s"><nav id="kcq0s"><li id="kcq0s"></li></nav></tbody><input id="kcq0s"><kbd id="kcq0s"><pre id="kcq0s"></pre></kbd></input><button id="kcq0s"><samp id="kcq0s"><tbody id="kcq0s"></tbody></samp></button><cite id="kcq0s"><option id="kcq0s"><delect id="kcq0s"></delect></option></cite><th id="kcq0s"></th><tr id="kcq0s"></tr><sup id="kcq0s"></sup><tbody id="kcq0s"><s id="kcq0s"><bdo id="kcq0s"></bdo></s></tbody><em id="kcq0s"><del id="kcq0s"><tfoot id="kcq0s"></tfoot></del></em><pre id="kcq0s"><s id="kcq0s"><bdo id="kcq0s"></bdo></s></pre><em id="kcq0s"></em><center id="kcq0s"></center><center id="kcq0s"></center><pre id="kcq0s"><td id="kcq0s"><fieldset id="kcq0s"></fieldset></td></pre><delect id="kcq0s"></delect><nav id="kcq0s"></nav><input id="kcq0s"></input><delect id="kcq0s"></delect><rt id="kcq0s"></rt><fieldset id="kcq0s"><menu id="kcq0s"><noscript id="kcq0s"></noscript></menu></fieldset><tbody id="kcq0s"></tbody><rt id="kcq0s"></rt><dl id="kcq0s"><em id="kcq0s"><del id="kcq0s"></del></em></dl></div> <script src="http://specialneedsforspecialkids.com/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>