分享

django中的FBV和CBV

 昵称25533110 2018-08-24

                  django中请求处理方式有2种:FBV 和 CBV

 

一、FBV

FBV(function base views) 就是在视图里使用函数处理请求。

看代码:

urls.py

1
2
3
4
5
6
7
8
from django.conf.urls import url, include
# from django.contrib import admin
from mytest import views
urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
]

views.py

1
2
3
4
5
6
7
8
9
from django.shortcuts import render
def index(req):
    if req.method == ‘POST‘:
        print(‘method is :‘ + req.method)
    elif req.method == ‘GET‘:
        print(‘method is :‘ + req.method)
    return render(req, ‘index.html‘)

注意此处定义的是函数【def index(req):】

index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
='en'>
    ='UTF-8'>
    index<</code><code>/</code><code>title></code></div><div><code><</code><code>/</code><code>head></code></div><div><code><body></code></div><div><code>    </code><code><form action</code><code>=</code><code>'</code><code>' method='</code><code>post'></code></div><div><code>        </code><code><</code><code>input</code> <code>type</code><code>=</code><code>'text'</code> <code>name</code><code>=</code><code>'A'</code> <code>/</code><code>></code></div><div><code>        </code><code><</code><code>input</code> <code>type</code><code>=</code><code>'submit'</code> <code>name</code><code>=</code><code>'b'</code> <code>value</code><code>=</code><code>'提交'</code> <code>/</code><code>></code></div><div><code>    </code><code><</code><code>/</code><code>form></code></div><div><code><</code><code>/</code><code>body></code></div><div><code><</code><code>/</code><code>html></code></div></div></td></tr></tbody></table></div></div></div><p>上面就是FBV的使用。</p><h3>二、CBV</h3><p><strong>CBV(class base views)</strong> 就是在视图里使用类处理请求。</p><p>将上述代码中的urls.py 修改为如下:</p><div><div><div><div><span><a>?</a></span></div><table border='0' cellpadding='0' cellspacing='0'><tbody><tr><td><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div></td><td><div><div><code>from</code> <code>mytest </code><code>import</code> <code>views</code></div><div><code>urlpatterns </code><code>=</code> <code>[</code></div><div><code>    </code><code># url(r‘^index/‘, views.index),</code></div><div><code>    </code><code>url(r‘^index</code><code>/</code><code>‘, views.Index.as_view()),</code></div><div><code>]</code></div></div></td></tr></tbody></table></div></div></div><p>注:url(r‘^index/‘, views.Index.as_view()),  是固定用法。</p><p>将上述代码中的views.py 修改为如下:</p><div><div><div><div><span><a>?</a></span></div><table border='0' cellpadding='0' cellspacing='0'><tbody><tr><td><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div><div>10</div><div>11</div></td><td><div><div><code>from</code> <code>django.views </code><code>import</code> <code>View</code></div><div><code>class</code> <code>Index(View):</code></div><div><code>    </code><code>def</code> <code>get(</code><code>self</code><code>, req):</code></div><div><code>        </code><code>print</code><code>(‘method </code><code>is</code> <code>:‘ </code><code>+</code> <code>req.method)</code></div><div><code>        </code><code>return</code> <code>render(req, ‘index.html‘)</code></div><div><code>    </code><code>def</code> <code>post(</code><code>self</code><code>, req):</code></div><div><code>        </code><code>print</code><code>(‘method </code><code>is</code> <code>:‘ </code><code>+</code> <code>req.method)</code></div><div><code>        </code><code>return</code> <code>render(req, ‘index.html‘)</code></div></div></td></tr></tbody></table></div></div></div><p>注:类要继承 View ,类中函数名必须小写。</p><p> </p><p><strong>两种方式没有优劣,都可以使用。</strong></p><p><a title='django中的FBV和CBV,' href='http://www./infodetail-1972338.html'>django中的FBV和CBV</a></p><p>标签:<a title='base' href='http://www./so/1/base'>base</a>   <a title='text' href='http://www./so/1/text'>text</a>   <a title='onf' href='http://www./so/1/onf'>onf</a>   <a title='div' href='http://www./so/1/div'>div</a>   <a title='spa' href='http://www./so/1/spa'>spa</a>   <a title='2种' href='http://www./so/1/2%E7%A7%8D'>2种</a>   <a title='inpu' href='http://www./so/1/inpu'>inpu</a>   <a title='site' href='http://www./so/1/site'>site</a>   <a title='.py' href='http://www./so/1/.py'>.py</a>   </p><p>原文:http://www.cnblogs.com/wumingxiaoyao/p/6513981.html</p> </td> </tr> </tbody> </table> </div> </div> <table> <!--防止文章内容有不完整标签--> <tbody> <tr> <td> <ul></ul> </td> </tr> </tbody> </table> <div></div> <span></span> <a></a> <p style="margin: 0; padding: 0;"></p> <p class="clearboth"></p> <div id="oranuserinfo" style="display: none; border: 0; padding: 0; margin: 0; overflow: visible;" class="yc_user zcomdiv new_yc_user"> </div> <div id="divtort"><div style="color:#999;text-align:left;line-height:22px;background:#f7f7f7;padding: 10px 20px;margin-bottom: -7px;margin-top:10px;">本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击<span style = "color:#155d9a;cursor:pointer;white-space: nowrap;" onclick="reportLayer.isLogin();artStatistics('20-18');">一键举报。</span></div></div> <div class="bottombtn2" id="bottombtn2"> <span class="newbtn_forward" onclick="SaveArt();artStatistics('20-3-2');" id="bt_resave"><i></i><b>转藏</b></span> <span class="newbtn_share"> <i></i><b>分享</b> <a href="javascript:void(0);" onclick="artStatistics('20-8-3');shareclickfun(this)"></a> <div class="sharelist_new bdsharebuttonbox" id="fenxiangLayer2"> <a class="slbg1" href="javascript:void(0);" data-cmd="qzone" onclick="artStatistics('20-8-6');shareStatic.addStatic('qzone');">QQ空间</a> <a class="slbg2" href="javascript:void(0);" data-cmd="sqq" onclick="artStatistics('20-8-7');shareStatic.addStatic('qq');">QQ好友</a> <a class="slbg3" href="javascript:void(0);" data-cmd="tsina" onclick="artStatistics('20-8-8');shareStatic.addStatic('sina');">新浪微博</a> <a class="slbg0" href="javascript:void(0);" onclick="shareWeixin()" id="bottom_weixin">微信</a> <iframe width="95" height="95" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" allowtransparency="true" class="qr" rel="780777857" style="display: none;"></iframe> </div> </span> <span id="flowimg3" class="newbtn_hua" onclick="Showflowerlayer('sendedLayer1');"><i></i><b>献花(<span id="articleflowernum">0</span>) <span id="flowernumadd" style="display: none;">+1</span></b></span> </div> <div class="bottom_controler"> <p class="bottom_cleft wordnobreak_"> 来自: <span class="a_username" style="width: auto;"> <a href="http://www.360doc.com/userhome/25533110" id="savernickname2" target="_blank" onclick="artStatistics('20-7-2');">昵称25533110</a> </span> > <span id="cname" class="a_from"><a href='http://www.360doc.com/userhome.aspx?userid=25533110&cid=2' target='_blank' onclick='artStatistics("20-6");'>《待分类1》</a></span> </p> <div class="bottom_cright"> <span> <a href="javascript:void(0);" class="a2 a3" onclick="reportLayer.isLogin();artStatistics('20-18');">举报/认领</a> </span> </div> </div> <div class="zcomdiv"> <div class="prev_next"> <div class="p1" id="lastart" style="display: none;"> <span>上一篇:</span> <div></div> </div> <div class="p2" id="nextart" style="display: none;"> <span>下一篇:</span> <div></div> </div> </div> </div> </div> <p class="clearboth"></p> <div style="height: auto; overflow: hidden;"> <a href="javascript:void(0)" id="topref" style="height: 0px;"></a> <div id="divyoulikeadtitle" class="mod__" style="display: none;"> <div class="str_border" style="border: none; position: relative; z-index: 2;"> <strong>猜你喜欢</strong> </div> <ul class="youlike" style="margin-top: -18px; position: relative; z-index: 1; display: none;" id="divyoulikeadbody"> <div style="width: 676px; height: 280px; border: 0;" id="divyoulikead"> </div> </ul> </div> <div class="clearboth"></div> <div class="mod__"> <div class="new_plbox zcomdiv"> <p id="refNumDIV" class="p1 f_left"><span id="refNumSpan">0</span>条评论</p> <div class="new_huifubt f_left"> <textarea name="SendRefTB" id="SendRefTB" value="写评论...">写评论...</textarea> <p> <a id="ImgSendPL" href="javascript:void(0);" onclick="SubmitReflection();">发表</a> </p> </div> </div> <p id="plgyDIV" style="margin: 0; text-align: right; padding: 7px 19px 0 0; color: #999;">请遵守用户 <a href="http://www.360doc.com/pages/agreement.html" target="_blank">评论公约</a></p> <ul class="replylist" id="reflectionListUL"> </ul> <div class="reply_pager" id="pageBarDIV"> </div> <a href="javascript:void(0)" class="reply_more" onclick="setSpread()" style="display: none;">查看更多评论<img src="http://pubimage.360doc.com/NewArticle/reply_btn.gif" /></a> </div> <div class="mod__"> <div class="str_border" style="border: none;"> <strong>类似文章</strong> <a href='http://www.360doc.com/relevant/780777857_more.shtml' target='_blank' class='a_more f_right' onclick='artStatistics("20-9-8");'>更多</a> </div> <ul class="ul-similar"> <li id="artid_979244208"><div style='width:100%;margin:0;' class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0527/15/75507148_979244208.shtml">python测试开发django-73.django视图 CBV 和 FBV</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0527/15/75507148_979244208.shtml">python测试开发django-73.django视图 CBV 和 FBV前言。@method_decorator(login_required) def get(self, request): self.context["msg"] = "这是Cbvdemo get请求" return JsonRes...</a></p></div></li><li id="artid_924239933"><span class="similar-pic f_left"><a href="http://www.360doc.com/content/20/0714/20/11213896_924239933.shtml" target='_blank' onclick='artStatistics("20-9-7");'><img src="http://thumbnail1.360doc.com/DownloadImg/2020/07/1408/i109/924239933_1.jpg"></a></span> <div class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/20/0714/20/11213896_924239933.shtml">03 Django之视图函数</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/20/0714/20/11213896_924239933.shtml">03 Django之视图函数。一.Django的视图函数view.每个视图负责返回一个HttpResponse对象.from django.shortcuts import render,HttpRespo...</a></p></div></li><li id="artid_923703582"><div style='width:100%;margin:0;' class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/20/0712/11/49039450_923703582.shtml">从cbv到fbv:用函数写视图与用类写视图的区别(drf与restful)</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/20/0712/11/49039450_923703582.shtml">从cbv到fbv:用函数写视图与用类写视图的区别(drf与restful)</a></p></div></li><li name="liadfeed" style="display:none;"></li><li id="artid_645440826"><div style='width:100%;margin:0;' class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/17/0414/01/6709666_645440826.shtml">Django中URL视图函数的一些高级概念介绍</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/17/0414/01/6709666_645440826.shtml">Django中URL视图函数的一些高级概念介绍。def method_splitter(request, *args, **kwargs): get_view = kwargs.pop(''GET'', None) post_view = kwargs.pop(''POST''...</a></p></div></li><li id="artid_985996589"><span class="similar-pic f_left"><a href="http://www.360doc.com/content/21/0710/20/65839659_985996589.shtml" target='_blank' onclick='artStatistics("20-9-7");'><img src="http://thumbnail1.360doc.com/DownloadImg/2021/07/1008/i109/985996589_1.jpg"></a></span> <div class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0710/20/65839659_985996589.shtml">Django——视图层(请求&响应对象,cbv和fbv,文件上传)</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0710/20/65839659_985996589.shtml"># 写视图类(还是写在views.py中)## 第一步,写一个类,继承Viewfrom django.views import Viewclass Index(View): def get(self, requ...</a></p></div></li><li id="artid_985959825"><div style='width:100%;margin:0;' class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0710/15/65839522_985959825.shtml">Django——forms组件(form校验字段功能,渲染模板功能)</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0710/15/65839522_985959825.shtml">Django——forms组件(form校验字段功能,渲染模板功能)一、forms组件介绍。MyForm() return render(request,''''''''register.html''''''&...</a></p></div></li><li name="liadfeed" style="display:none;"></li><li id="artid_1008156479"><span class="similar-pic f_left"><a href="http://www.360doc.com/content/21/1210/22/360939_1008156479.shtml" target='_blank' onclick='artStatistics("20-9-7");'><img src="http://thumbnail1.360doc.com/DownloadImg/2021/12/1010/i109/1008156479_1.jpg"></a></span> <div class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/1210/22/360939_1008156479.shtml">Django AJAX : How to use AJAX in Django Template...</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/1210/22/360939_1008156479.shtml">Django AJAX : How to use AJAX in Django Template...<script src=''''''''https://ajax.googleap...</a></p></div></li><li id="artid_990584736"><span class="similar-pic f_left"><a href="http://www.360doc.com/content/21/0811/16/74628403_990584736.shtml" target='_blank' onclick='artStatistics("20-9-7");'><img src="http://thumbnail1.360doc.com/DownloadImg/2021/08/1105/i109/990584736_1.jpg"></a></span> <div class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0811/16/74628403_990584736.shtml">前端教程:Django通用视图</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/21/0811/16/74628403_990584736.shtml">前端教程:Django通用视图。Django还提供了一种简单的方法来设置这些简单的视图被称为通用视图。from django.views.generic import List...</a></p></div></li><li id="artid_909305940"><div style='width:100%;margin:0;' class="similar-info f_left"><p class="similar-title"><a target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/20/0429/21/21412_909305940.shtml">Django blog项目《六》:《注册功能1》用户模型、用户名、手机号、图形验证码、短信验证码功能实现</a></p><p class="similar-text"><a onclick="artStatistics('20-9-7');" target='_blank' onclick="artStatistics('20-9-7');" href="http://www.360doc.com/content/20/0429/21/21412_909305940.shtml">from django.db import modelsfrom django.contrib.auth.models import UserManager as _UserManagerclass UserManager(_UserManager): """重写创建超级用户时需要输入email字段 "...</a></p></div></li><li name="liadfeed" style="display:none;"></li> </ul> </div> </div> </div> <div class="a_right"> <div id="rightfixed" style="width: 300px;"> <div class="vipact" style="display:none"><a href="http://www.360doc.com/member/index.html?type=0&imgcode=46-8" target="_blank">个图VIP买2年赠1年,限时198元>></a><span>x</span></div> <div class="user_info"> <div class="user_photo_new f_left"> <a href="http://www.360doc.com/userhome/25533110" id="userphotourl" target="_blank" onclick="artStatistics('20-7-4');"> <img src="http://pubimage.360doc.com/head/001.gif" id="userphoto" /> </a> </div> <div class="user_data f_right"> <div class="user_data_name"> <a href="http://www.360doc.com/userhome/25533110" id="nickname" target="_blank" onclick="artStatistics('20-7-3');">昵称25533110</a><i id="VerificationTips" style="display: none" class="aut" title="已通过个人认证"><a href="https://pay.360doc.com/pages/myaccount.aspx?app=23" target="_blank" onclick="artStatistics('25-13-3-27');"></a></i> </div> <p id="userdegree"><img src='http://pubimage.360doc.com/NewArticle/userstar1.gif' /><img src='http://pubimage.360doc.com/NewArticle/userstar1.gif' /><img src='http://pubimage.360doc.com/NewArticle/userstar1.gif' /><img src='http://pubimage.360doc.com/NewArticle/userstar3.gif' /><img src='http://pubimage.360doc.com/NewArticle/userstar3.gif' /></p> <div class="user_data_num" id="follow_talk"> <a class="user_data_gz" href="javascript:void(0);" id="spanfollowstatusnew">关注</a> <a class="user_data_dh" href="javascript:void(0);" onclick="this.blur();docTalk();artStatistics('20-15');">对话</a> </div> </div> </div> <div class="his_her"><ul class='his_her_type'><li class='f_left curone'><a href="http://www.360doc.com/userhome/25533110" style="color:#000;" target="_blank" onclick="artStatistics('20-9-10');">TA的最新馆藏</a></li></ul><div class='his_her_div' style="height:190px;"><ul class='his_her_list'><li><div><span></span><a title="成长的足迹" href=http://www.360doc.com/content/20/0925/11/25533110_937523237.shtml target=_blank onclick="artStatistics('20-9-11');">成长的足迹</a></div><div><span></span><a title="半生" href=http://www.360doc.com/content/20/0916/13/25533110_936018697.shtml target=_blank onclick="artStatistics('20-9-11');">半生</a></div><div><span></span><a title="血管变窄的男人, 通常有4个特征, 若占3个以上, 可能中风正在靠近" href=http://www.360doc.com/content/20/0910/21/25533110_935012297.shtml target=_blank onclick="artStatistics('20-9-11');">血管变窄的男人, 通常有4个特征, 若占3个以上, 可能中风正在靠近</a></div><div><span></span><a title="婚配事业" href=http://www.360doc.com/content/20/0327/12/25533110_902007421.shtml target=_blank onclick="artStatistics('20-9-11');">婚配事业</a></div><div><span></span><a title="【干货】如何提高听辨英语口音能力(附67种英语口音视频)" href=http://www.360doc.com/content/19/1004/08/25533110_864733731.shtml target=_blank onclick="artStatistics('20-9-11');">【干货】如何提高听辨英语口音能力(附67种英语口音视频)</a></div><div><span></span><a title="培训机构掌握这些技巧,体验课转化率>90%" href=http://www.360doc.com/content/19/0919/11/25533110_861946637.shtml target=_blank onclick="artStatistics('20-9-11');">培训机构掌握这些技巧,体验课转化率>90%</a></div></li></ul></div></div> <div class="clear360doc" id="outerdivifartad1"> </div> <div class="his_her" id="recommendArt"> <div class="hhtitle_"> <span class="s1">喜欢该文的人也喜欢</span> <a onclick="artStatistics('20-28-4');" href="http://www.360doc.com/readroom.html" target="_blank">更多</a> </div> <div class='hhlist_new' id="recommendArtLists"> </div> </div> <div class="his_her" id="recommendArtHot"> <div class="hhtitle_"> <span class="s1"><i class="atnavicons"></i>热门阅读</span> <a onclick="reSetHotArt();artStatistics('20-55-1-0');" href="javascript:void(0)">换一换</a> </div> <div class='hhlist_new' id="recommendArtHotLists"> </div> </div> <div class="clear360doc" style="padding-top: 10px;" id="divifartad2"> </div> <div class="clear360doc" id="divad5" style="zoom: 1; width: 300px; display: none;"> <div id="divad4" style="display: none;"> <div id="divifartad"> </div> <div class="ggwz"> </div> <div style="height: 13px;"> </div> </div> <div style="clear: both; display: none;" id="divad6"> <div id="adfloatbaidu"> </div> <div class="ggwz"> </div> <div style="height: 13px;"> </div> </div> <div style="height: 75px;"> </div> </div> </div> </div> </div> <p class="clearboth"></p> <input type="hidden" id="artid" value="780777857" /> <input type="hidden" id="docarttitle" value="django%e4%b8%ad%e7%9a%84FBV%e5%92%8cCBV" /> <input type="hidden" id="firstartid" value="780777857" /> <input type="hidden" id="firstuid" value="25533110" /> <input type="hidden" id="myuid" value="-1" /> <input type="hidden" id="firstarturl" value="http://www.360doc.com/content/18/0824/09/25533110_780777857.shtml" /> <input type="hidden" id="oranfirstarturl" value="" /> <input type="hidden" id="subclassid" value="0" /> <input type="hidden" id="recommendart1" value="-1" /> <input type="hidden" id="recommendart2" value="-1" /> <input type="hidden" id="isowner" value="False" /> <input type="hidden" id="isowner2" value="0" /> <input type="hidden" id="original" value="0" /> <input type="hidden" id="showrewardlist" value="0" /> <input type="hidden" id="saveruserid" value="25533110" /> <input type="hidden" id="sourceurl" value="" /> <input type="hidden" id="deschidden" value="" /> <input type="hidden" id="firstkeywords" value="" /> <input type="hidden" id="firsttagwords" value="" /> <input type="hidden" id="firstsubclassid" value="0" /> <input type="hidden" id="hidisneweditor" value="0" /> <input type="hidden" id="hidreadroomclassid" value="0" /> <input type="hidden" id="hidsubclassid" value="-1" /> <input type="hidden" id="hidisshowminiapp" value="1" /> <input type="hidden" id="articleTime" value="2018-08-24T09:05:47" /> <input name="acinfo" type="hidden" id="acinfo" /> <input type="hidden" id="activityimg" value="http://ebookimage.360doc.com/banner/banner_1590142105143.jpeg" /> <input type="hidden" id="activityurl" value="http://www.360doc.com/member/index.html" /> <input type="hidden" id="isblackartid" value="2" /> <input type="hidden" id="isIllegalArt" value="2" /> <input type="hidden" id="hidappid" value="" /> <input type="hidden" id="userstatus" value="1" /> <input type="hidden" id="isshowimg" value="1" /> <input type="hidden" id="showarttype" value="0" /> <input type="hidden" id="hidden_permission" value="0" /> <input type="hidden" id="AuthorizerAppid" value="" /> <input type="hidden" id="source" value="" /> <input type="hidden" id="hidIsReflecion" value="1" /> <input type="hidden" id="artreadroomid" value="0" /> <div class="contextmenu" id="contextmenudiv" style="display: none;"> <ul> <li><a href="javascript:void(0)" onclick="document.execCommand('Copy');addStatisticsNew('20-29-1-2');">复制</a></li> <li><a href="javascript:void(0)" onclick="PrintObj.init();addStatisticsNew('20-31-1-72');">打印文章</a> </li> <li class="sendtophone"><a href="javascript:void(0)" onclick="addStatisticsNew('20-41-1-147');">发送到手机</a> <div class="qr" id="mobileQr"> <p>微信扫码,在手机上查看选中内容</p> <div id="sendtophone_qr"></div> </div> </li> <li><a href="javascript:void(0)" onclick="FullScreenObj.init();addStatisticsNew('20-30-1-118');">全屏阅读</a> </li> <li id="ArticleReadingLiBtn1" style="display: none;"><a id="ArticleReadingBtn1" href="javascript:void(0)" onclick="ArticleReadingClick(2);">朗读全文<b></b></a></li> <li id="share_li"> <a href="javascript:void(0)" class="tri">分享文章</a> <div class="sharelist_new ctxshare bdsharebuttonbox" id="ctxshare"> <a class="slbg1" href="javascript:void(0);" data-cmd="qzone" onclick="artStatistics('20-8-6');shareStatic.addStatic('qzone');">QQ空间</a> <a class="slbg2" href="javascript:void(0);" data-cmd="sqq" onclick="shareStatic.addStatic('qq');artStatistics('20-8-7');">QQ好友</a> <a class="slbg3" href="javascript:void(0);" data-cmd="tsina" onclick="shareStatic.addStatic('sina');artStatistics('20-8-8');">新浪微博</a> <a class="slbg0" href="javascript:void(0);" onclick="shareWeixin()" id="ctx_weixin">微信</a> <iframe width="95" height="95" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" allowtransparency="true" class="qr" rel="780777857" style="display: none;"></iframe> </div> </li> </ul> </div> <div class="contextmenu unlogin" id="contextmenudivmouseup" style="display: none;"> <ul> <li><a class="a1" href="javascript:void(0)" onclick="document.execCommand('Copy');$('#contextmenudivmouseup').hide();addStatisticsNew('20-29-1-2');">复制</a></li> <li id="print_li_mouseup"><a href="javascript:void(0)" onclick="PrintObj.init();$('#contextmenudivmouseup').hide();addStatisticsNew('20-31-1-71');">打印文章</a> </li> <li class="sendtophone" style="display: none"><a href="javascript:void(0)" onclick="addStatisticsNew('20-41-1-146');">发送到手机</a> <div class="qr"> <p>微信扫码,在手机上查看选中内容</p> <div></div> </div> </li> <li><a href="javascript:void(0)" onclick="FullScreenObj.init();$('#contextmenudivmouseup').hide();addStatisticsNew('20-30-1-117');">全屏阅读</a> </li> <li id="ArticleReadingLiBtn2" style="display: none;"><a id="ArticleReadingBtn2" href="javascript:void(0)" onclick="ArticleReadingClick(3);$('#contextmenudivmouseup').hide();">朗读全文</a> </li> </ul> </div> <script src="/js/360query18.js?t=2020091001" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> function setDragEnd() { }; function NewHighlight() { }; function delAllDiv() { }; if (window.location.toString().indexOf("shtml?") > 0) { self.location = window.location.toString().replace(window.location.search.toString(), ""); } function doccheckart(json) { if (json[0].result == "1") { if ( 780777857 != 780777857) { if (getCookie("360doc1") != null) { $.ajax({ url: "http://www.360doc.com/ajax/getuserid.ashx", async: false, cache: false, dataType: "json", success: function (result) { if (25533110 != result.userid) { self.location = "http://www.360doc.com/noarticle.aspx"; } }, error:function(){ self.location = "http://www.360doc.com/noarticle.aspx"; } }); } else { self.location = "http://www.360doc.com/noarticle.aspx"; } } else { self.location = "http://www.360doc.com/noarticle.aspx"; } } } </script> <script src="/js/Statistics/addStatistics.js?t=2023010401" type="text/javascript"></script> <script type="text/javascript"> function getCookie(name) //获取cookie值 { var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); if (arr != null) return unescape(arr[2]); return null; } var patt1 = new RegExp("[0-9]*_[0-9]*"); var url = patt1.exec(location.href); if (navigator.userAgent.toLowerCase().indexOf("micromessenger") > -1) { window.location.href = "http://www.360doc6.net/wxarticlenew/" + url.toString().split("_")[1] + ".html"; } else if (navigator.userAgent.indexOf("iPhone") > 0 || navigator.userAgent.indexOf("Android") > 0 || navigator.userAgent.indexOf("iPod") > 0) { //手机端跳转 if (url != "") { self.location = "https://www.360doc.cn/article/" + url + ".html"; } } if ( 780777857 != 780777857) { if (getCookie("360doc1") != null) { $.ajax({ url: "http://www.360doc.com/ajax/getuserid.ashx", async: false, cache: false, dataType: "json", success: function (result) { if (25533110 != result.userid) { self.location = "http://www.360doc.com/content/18/0824/09/25533110_780777857.shtml"; } } }); } else { self.location = "http://www.360doc.com/content/18/0824/09/25533110_780777857.shtml"; } } if ( 0 != 780777857&&"0" != "" &&"0" != "0" &&"0" != 1) { $.ajax({ url: "http://www.360doc.com/ajax/getuserid.ashx", cache: false, dataType: "json", success: function (result) { if (result.userid != 25533110) { location = ""; } } }); } </script> <script src="/js/showarticlefollow20160329.js?t=2024032001" type="text/javascript" charset="utf-8"></script> <script src="/js/jQuery.md5.min.js?t=2016041501" type="text/javascript" charset="utf-8"></script> <script src="/js/common/docgjio.js?t=2018012801" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "//hm.baidu.com/hm.js?d86954201130d615136257dde062a503"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script src="/js/article/report.js?t=2023120501" type="text/javascript" charset="utf-8"></script> <script src="/js/Statistics/sha1.js?t=2017092101" type="text/javascript"></script> <script type="text/javascript" src="/js/index7/newheader2022.js?t=2023120501"></script> <script src="/js/showarticle.js?t=2024042501" type="text/javascript" charset="utf-8"></script> <script>GerLookingUserInfo(1,25533110,1,0,'','',10,0);OutputLastNextArt('jQuery选择器总结','http://www.360doc.com/content/18/0824/09/25533110_780777842.shtml',0);OutputLastNextArt('提升 10 倍Web 应用性能的 10 个小技巧!','http://www.360doc.com/content/18/0824/09/25533110_780777881.shtml',1);</script> <script src="//blockart.360doc.com/ajax/getstatusv2.ashx?aid=780777857" type="text/javascript" charset="utf-8" async="async"></script> <script type="text/javascript"> var baiduImagePlus = { noLogo: true, unionId: 'u2617463', maxMiniAdCount: 0, formList: [{ formId: 10 }] }; //imgLogPcPage(1, 'code=69-2'); </script> <script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/i.js" async="async"></script> <script type="application/ld+json"> { "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id": "http://www.360doc.com/content/18/0824/09/25533110_780777857.shtml", "title": "django中的FBV和CBV", "pubDate": "2018-08-24T09:05:47" } </script> </body> </html>