<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC=1,5] >[success] # Django-url 請求映射 ~~~ 1.在settings.py目錄下配置好ROOT_URLCONF = '根目錄名.urls' 2.通過根目錄下from django.conf.urls import url,創建urlpatterns列表 3.通過用戶輸入的url和urlpatterns中的url進行匹配 4.匹配成功后,導入并調用給定的視圖python函數 5.如果匹配失敗返回報錯信息 ~~~ * **注意:** * url 一定要用$ 結尾 * 不需要在每個url前加反斜杠,因為每個url都有 * 每個正則表達式前面的'r' 是可選的但是建議加上。 它告訴Python 這個字符串是“原始的” —— 字符串中任何字符都不應該轉義。 * * * * * ![](https://box.kancloud.cn/4178c81974a1f23cfd9fb6253cd183eb_572x337.png) >[danger] ##### FBV - 請求映射寫法 ~~~ from django.conf.urls import url from . import views urlpatterns = [ url(r'login',views.login), ] ~~~ >[danger] ##### CBV - 請求映射寫法 * **注意點:** * `一定在view層用的是 class 定義函數才可以使用` ~~~ from django.conf.urls import url from . import views urlpatterns = [ url(r'index',views.index.as_view()) ] ~~~ </br> * * * * * >[success] # 獲取一組url >[info] ### 方法一、Get >[danger] ##### 使用場景 ~~~ 1.通過url 傳遞參數的時候使用 2.url 樣式 http://127.0.0.1:8000/login?num=3 ~~~ >[danger] ##### views 層編寫 ~~~ # 設置一個字典 USER_DICT = { "1":{'name':"w"}, "2":{'name':"c"}, "3":{'name':"y"}, } def login(request): if request.method == "GET": # 獲取當前url傳遞的參數 num = request.GET.get('num',None) if num: USER_DIC=USER_DICT.get(num,None) if USER_DICT: # 獲取成功后跳轉的詳情頁面 return render(request,'person.html',{'USER_DIC':USER_DIC}) # 初始頁面,當獲取失敗和第一次時候 跳到初始頁面 return render(request,"index.html",{'USER_DICT':USER_DICT}) ~~~ >[danger] ##### templates 編寫 參數動態生成 ~~~ {% for k,v in USER_DICT.items %} <a href="/login?num={{ k }}">{{ v.name }}</a> {% endfor %} ~~~ * * * * * </br> >[info] ### url設置正則方法一 >[danger] ##### 使用場景 ~~~ 1.所有url都是str類型,例如/test/1,中的1也是str類型 2.獲取一組url,獲取/test/2017、/test/2018這種變化的url 3.例如:http://127.0.0.1:8000/personinfo/1 后面的數字是動態的 ~~~ **快速知識點:** ~~~ urlpatterns = [ url(r'^test/([0-9]{4})/$',views.index), url(r'^test/([0-9]{4})/([0-9]{2})/$',views.index1), url(r'^test/([0-9]{4})/([0-9]{2})/([0-9]+)/$',views.index2), ] ~~~ ~~~ def index(request,yid) def index1(request,yid,mid) def index2(request,yid,mid,did) ~~~ * * * * * >[danger] ##### url.py 配置 **注意:** 這里做了兩個url,一個用來接受所有數據,一個用來正則匹配 ![](https://box.kancloud.cn/7a9a41e9dfc0a0793e4bc9ef2ab4839d_676x172.png) ~~~ from django.conf.urls import url from . import views urlpatterns = [ url(r'person/$', views.person), url(r'personinfo/(\d+)',views.personinfo), ] ~~~ >[danger] ##### views.py 配置 ~~~ # 設置一個字典 USER_DICT = { "1":{'name':"w"}, "2":{'name':"c"}, "3":{'name':"y"}, } # 獲取所有數據 def person(request): return render(request,'index.html',{'USER_DICT':USER_DICT}) # 用來接收url的匹配參數,跳轉匹配的網址 def personinfo(request,nid): if nid: USER_DIC = USER_DICT[nid] return render(request,"person.html",{'USER_DIC':USER_DIC}) ~~~ >[danger] ##### 多個參數寫法 **url:寫法** ~~~ url(r'^nid-(\d+)-(\d+)', views.nid), ~~~ **views 寫法:** ~~~ #uid,nid 分別是和正則對應url是一一對應 def test(request,uid,nid): #第二種可以利用*arg def test(request,*arg): ~~~ * * * * * >[info] ### url設置正則方法二 >[danger] ##### 命名組通過屬性名對應-(?P<屬性名>) ~~~ 對應函數為屬性名依次對應,函數中的屬性名位置可以不用順序排列 ~~~ **快速知識點:** ~~~ urlpatterns = [ url(r'^test/(?P<year>[0-9]{4})/$',views.index), url(r'^test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',views.index1), url(r'^test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]+)/$',views.index2), ] ~~~ * * * * * **第一種** ~~~ def index(request,year): def index1(request,month,year): def index2(request,year,month,day): ~~~ **第二種** ~~~ def test(request,**kwargs) ~~~ >[danger] ##### 小技巧-兩個url指向同一函數 ~~~ urlpatterns = [ url(r'^test/page/$',views.index), url(r'^test/page(?P<page>(\d+))/$',views.index), ] ~~~ **views** 設置默認頁 ~~~ def index(request,page=1): return HttpResponse(page) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看