django urls路由

1.路由分发  在urls路由中  可使用 include 去匹配  app01下面的 urls  而达到分类的 效果


from django.contrib import admin
from app01 import views
from django.conf.urls import url,include
urlpatterns = [
    url(r'admin/', admin.site.urls),
     url(r'app01/',include('app01.urls') ,namespace='app01')    #相当于分类 先去找app  再找app下的urls  
      namespace  区分属于那个app
]

2.路由 传参 方向解析 url 

from app01 import views
from django.conf.urls import url
urlpatterns = [
    url(r'index/', views.show),   #1.普通路由
    #/home/123/45/
    url(r'^home/[0-9]{3}/[0-9]{2}/', views.Cbv.as_view()),  #2.CBV模型路由
    url(r'^home/([0-9]{3})/[0-9]{2}/$',views.home)  
   3.括号 相当于把括号类匹配的参数传给 home函数    # 可以删除图书的序号作用

    url(r'^home/([0-9]{3})/[0-9]{2}/$',views.home,name='wyc')  
]

反向 :reverse  在有 url(r'^home/([0-9]{3})/[0-9]{2}/$',views.home,name='wyc')  这个url对应的地方都可以通过reverse 拿到地址

  1. view中revers('wyc') 返回一个str   就是name=''前对应的 url    

  2.html  a 标签中 {%url 'wyc '%} 使用

  3.revers('wyc'  ,args=(12,23))  参数用法   把参数传入到  正则表达式的括号中 或  {%url 'wyc ' '2009'  '12' %}   

       

3.先指定一个默认值   在使用urls传参

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^blog/$', views.page),
    url(r'^blog/page(?P<num>[0-9]+)/$', views.page),
]
# views.py中,可以为num指定默认值
def page(request, num="1"):
    pass

  2.删除功能三合一 

url(r'^delete_(press|book|author)/(\d+)/$', views.delete),  
url(r'^press_list/$', views.press_list,name='press'), 
url(r'^book_list/$', views.jilei,name='book'), 
url(r'^author_list/$', views.author_list,name='author'),  
def delete(request, table, del_id):
    # table_dict = {
    #     'press':Press,
    #     'book':Book,
    #     'author':Author,
    # }
    # table_class = table_dict.get(table)

    table_class = getattr(models, table.capitalize())    第一个字母大写 其他小写 通过str反射拿到类
    table_class.objects.get(id=del_id).delete()
    return redirect(reverse(table))       利用reverse 反向拿到对应 name 的重定向url

  1.当点击页面上的 删除按钮时 <a href="/delete_book/{{ i.id }}">   拿到  id值 去匹配url中的  三个类型的删除

  2. 路由 把  'book'  'id'  当作参数传给  delete 函数 

  3. Book   通过反射  拿到 models 中 的类 对象  

  4.删除操作完后     重定向 :  通过reverse( 'book')   反向解析 url中的 name= ' book'  拿到重定向的 url 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值