最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django 反向生成url實例詳解

 更新時間:2019年07月30日 09:24:31   作者:搶魚  
這篇文章主要介紹了Django 反向生成url實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Django中提供了一個關于URL的映射的解決方案,

1.客戶端的瀏覽器發(fā)起一個url請求,Django根據URL解析,把url中的參數捕獲,調用相應的試圖,獲取相應的數據,然后返回給客戶端顯示

2.通過一個視圖的名字,再加上一些參數和值,逆向獲取相應的URL

第一個就是平常的請求有URLconf來解析的過程,

第二個叫做,url的逆向解析,url逆向匹配,url的逆向查閱,等

Django提供了不同的層級的url逆向處理工具:

1.在模板templates中,使用url標記,如:{% url %}

2.在Python代碼中,使用django.core.urlresolvers.reverse()方法

3.在更高一層級的處理url中,用get_absolute_url()方法

新建一個項目diango

訪問longin頁面跳轉到 index頁面

app01 views.py

from django.shortcuts import render,redirect,HttpResponse
def index(request):
  return HttpResponse('Index')
def login(request):
  return HttpResponse('longin')

urls.py

from django.conf.urls import url
from app01 import views

urlpatterns = [
  url(r'^index/', views.index),
  url(r'^login/', views.login),

]

在平常做法

views.py

views.py

def login(request):
  return redirect('/index/')

如果usr 很長

urlpatterns = [
  url(r'^index/xxxxx/xxx/xxx/xxx/xx/', views.index),
  url(r'^login/', views.login),
]

可以用平常做法:

app01 views.py

def login(request):
  return redirect('/index/xxxxx/xxx/xxx/xxx/xx/')

這種方法看上去不是那么的友好, 我們用usl 別名的方式

導入reverse

app01/views.py

from django.urls import reverse
def login(request):
  url = ('inx')
  return redirect(url)

urls.py

urlpatterns = [
  url(r'^index/xxxxx/xxx/xxx/xxx/xx/', views.index,name='inx'),
]

通過 usl名稱,反向生成usl

include方法來實現路由轉發(fā)功能

urls.py

url(r'^cmdb/', include'(crm.urls)'),

crm/urls.py

from django.conf.urls import url,include
from django.contrib import admin
from crm import views
urlpatterns = [
  url(r'^hosts/', views.hosts,name='hosts'),
]

crm/views.py

def hosts(request):
  return HttpResponse('主機列表')

通過這個cmdb前綴分發(fā),分發(fā)到自己的urls中,好處可以將各種的業(yè)務拆分

反向生成時,使用reverse(‘namespace:name')

新建app, monitor 、openstack ,

url(r'^monitor/', include('monitor.urls',namespace='m')),
url(r'^openstack/', include('openstack.urls',namespace='o')),

monitor/ulrs.py

from django.conf.urls import url,include
from django.contrib import admin
from monitor import views
urlpatterns = [
  url(r'^hosts/', views.hosts,name='hosts'),
]

monitor/views.py

from django.shortcuts import render,HttpResponse
def hosts(request):
  return HttpResponse('監(jiān)控系統(tǒng),主機列表')

openstack /ulrs.py

from django.conf.urls import url,include
from django.contrib import admin
from openstack import views
urlpatterns = [
  url(r'^hosts/', views.hosts,name='hosts'),
]

openstack /views.py

from django.shortcuts import render,HttpResponse
def hosts(request):
  return HttpResponse('OpenStack,主機列表')

登錄成功時跳轉到 openstack/主機列表頁面

def login(request):
  return HttpResponse('Login')
  # 跳轉到 openstack主機列表頁面
  # return redirect('/openstack/hosts/')
  url = reverse('o:hosts')

include本質 【就是元組,一級一級做分發(fā)】

urls.py

from monitor import views as mviews
from openstack import views as oviews
  # /monitor/hosts/
  url(r'^login/', views.login),
    url(r'^monitor/', ([
                url(r'^hosts/',mviews.hosts,name='hhhhh'),
                url(r'^c1/',mviews.hosts),
                url(r'^x1/', ([
                        url(r'^xxx1/',mviews.hosts),
                        url(r'^xxx2/',mviews.hosts,name='xx2'),
                        url(r'^xxx3/',mviews.hosts),
                        url(r'^xxx4/',mviews.hosts),
                      ],None,None)),
                url(r'^c2/',mviews.hosts),
                url(r'^c3/',mviews.hosts),
              ],None,'mm')),
    url(r'^openstack/', ([
                url(r'^hosts/',oviews.hosts,name='hhhhh'),
                url(r'^c1/',oviews.hosts),
                url(r'^c2/',oviews.hosts),
                url(r'^c3/',oviews.hosts),
              ],None,'oo')),
]

views.py

  # 跳轉到 openstack主機列表頁面
   url = reverse('oo:hhhhh')
   url = reverse('mm:uu:xx2')

動態(tài)生成url

views.py

def login(request):
  return HttpResponse('Login')

urls.py

urlpatterns = [
  url(r'^login/', views.login),
]
for i in range(10):
  temp = []
  for j in range(5):
    temp.append(url(r'^inner_%s/' % j, views.login))
  v = url(r'^login_%s/' %i, (temp,None,None))
  urlpatterns.append(v)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python實現連接mongodb的方法

    python實現連接mongodb的方法

    這篇文章主要介紹了python實現連接mongodb的方法,涉及Python使用pymongo模塊的基本技巧,需要的朋友可以參考下
    2015-05-05
  • python Django實戰(zhàn)之歌曲搜索功能實現

    python Django實戰(zhàn)之歌曲搜索功能實現

    這篇文章主要為大家詳細介紹了如何利用python Django實現歌曲搜索功能,文中的示例代碼講解詳細,具有一定的參考價值,有需要的小伙伴開業(yè)了解下
    2023-10-10
  • Python+OpenCV實現六種常用圖像特效

    Python+OpenCV實現六種常用圖像特效

    這篇文章主要為大家介紹了用Python和OpenCV實現的六種常見圖像特效:圖像融合、灰度處理、馬賽克效果、浮雕效果、毛玻璃效果和顏色反轉,需要的可以參考一下
    2022-05-05
  • python實現時間序列自相關圖(acf)、偏自相關圖(pacf)教程

    python實現時間序列自相關圖(acf)、偏自相關圖(pacf)教程

    這篇文章主要介紹了python實現時間序列自相關圖(acf)、偏自相關圖(pacf)教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中selenium操作下拉滾動條的幾種方法匯總

    python中selenium操作下拉滾動條的幾種方法匯總

    這篇文章主要介紹了python中selenium操作下拉滾動條的幾種方法匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python實現投影法分割圖像示例(二)

    Python實現投影法分割圖像示例(二)

    今天小編就為大家分享一篇Python實現投影法分割圖像示例(二),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解python安裝matplotlib庫三種失敗情況

    詳解python安裝matplotlib庫三種失敗情況

    這篇文章主要介紹了詳解python安裝matplotlib庫三種失敗情況,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Python中魔術方法的定義及一些常用方法

    Python中魔術方法的定義及一些常用方法

    所有以雙下劃線__包起來的方法,統(tǒng)稱為Magic Method(魔術方法),它是一種的特殊方法,這篇文章主要給大家介紹了關于Python中魔術方法的定義及一些常用方法,需要的朋友可以參考下
    2024-02-02
  • python3.8下載及安裝步驟詳解

    python3.8下載及安裝步驟詳解

    這篇文章主要介紹了python3.8下載及安裝步驟詳解,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python壓縮模塊zipfile實現原理及用法解析

    Python壓縮模塊zipfile實現原理及用法解析

    這篇文章主要介紹了Python壓縮模塊zipfile實現原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論

元谋县| 彩票| 越西县| 宁夏| 凤阳县| 乌苏市| 安陆市| 辽源市| 宜昌市| 达州市| 榆林市| 廉江市| 尼玛县| 洛浦县| 苏尼特左旗| 乳源| 元朗区| 东阿县| 江华| 怀化市| 白玉县| 临汾市| 澜沧| 潮州市| 秦安县| 越西县| 宁津县| 遂平县| 合川市| 丰都县| 公主岭市| 乌审旗| 施秉县| 平舆县| 旬阳县| 安达市| 肇庆市| 秦安县| 象州县| 新巴尔虎左旗| 峨边|