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

Django 反向生成url實(shí)例詳解

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

Django中提供了一個(gè)關(guān)于URL的映射的解決方案,

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

2.通過一個(gè)視圖的名字,再加上一些參數(shù)和值,逆向獲取相應(yīng)的URL

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

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

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

1.在模板templates中,使用url標(biāo)記,如:{% url %}

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

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

新建一個(gè)項(xiàng)目diango

訪問longin頁面跳轉(zhuǎn)到 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 別名的方式

導(dǎo)入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方法來實(shí)現(xiàn)路由轉(zhuǎn)發(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('主機(jī)列表')

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

反向生成時(shí),使用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),主機(jī)列表')

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,主機(jī)列表')

登錄成功時(shí)跳轉(zhuǎn)到 openstack/主機(jī)列表頁面

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

include本質(zhì) 【就是元組,一級(jí)一級(jí)做分發(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

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

動(dòng)態(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)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)連接mongodb的方法

    python實(shí)現(xiàn)連接mongodb的方法

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

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

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

    Python+OpenCV實(shí)現(xiàn)六種常用圖像特效

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

    python實(shí)現(xiàn)時(shí)間序列自相關(guān)圖(acf)、偏自相關(guān)圖(pacf)教程

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

    python中selenium操作下拉滾動(dòng)條的幾種方法匯總

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

    Python實(shí)現(xiàn)投影法分割圖像示例(二)

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

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

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

    Python中魔術(shù)方法的定義及一些常用方法

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

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

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

    Python壓縮模塊zipfile實(shí)現(xiàn)原理及用法解析

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

最新評(píng)論

云浮市| 江口县| 昌乐县| 山西省| 且末县| 汤阴县| 当雄县| 上饶市| 平山县| 大安市| 德州市| 汶川县| 松阳县| 山东省| 崇文区| 孟连| 镶黄旗| 嘉禾县| 海南省| 九寨沟县| 黔南| 青海省| 万宁市| 平度市| 西乌珠穆沁旗| 吉木乃县| 宁夏| 晴隆县| 时尚| 思南县| 获嘉县| 临城县| 习水县| 含山县| 巨鹿县| 冕宁县| 秭归县| 康保县| 衡阳市| 板桥市| 东山县|