Django-路由系统

路由系统

  • 1.单一路由对应

    seo 搜索引擎的录入权重

<ul>
    {% for item in user_list %}
    <li>{{ item }}|<a href="/edit/?nid={{ item }}">编辑</a></li>
    {% endfor %}
</ul>


urlpatterns = [
    url(r'^index$', views.index),
]

/?id=XXXX/ 这样get传值,seo优先级不高


  • 2.基于正则的路由
<ul>
    {% for item in user_list %}
    <li>{{ item }}|<a href="/edit/{{ item }}">编辑</a></li>
    {% endfor %}
</ul>

<ul>
    {% for item in user_list %}
    <li>{{ item }}|<a href="/edit/{{ item }}.html">编辑</a></li>
    {% endfor %}
</ul>


urlpatterns = [
    url(r'^edit/(\w+)/', views.edit),
    url(r'^edit/(\w+).html$', views.edit),
    # 伪静态 seo 权重更高
    # $ 终止符 如果遇到浏览器自动在末尾加/,清除缓存后解决。
]


def edit(request,a1):
    return HttpResponse(a1)

  • 3.带参数的路由

<ul>
    {% for item in user_list %}
    <li>{{ item }}|<a href="/edit/{{ item }}/33/">编辑</a></li>
    {% endfor %}
</ul>

urlpatterns = [
    url(r'^edit/(?P<a1>\w+)/(?P<a2>\w+)/', views.edit),
]

def edit(request,a1,a2):

    return HttpResponse(json.dumps((a1,a2)))

  • 4.路由分发
# urls.py
urlpatterns = [
    url(r'^app01/', include('app01.urls')),
]
# app01.urls.py
urlpatterns = [
    url(r'^index$', views.index),
]
  • 5.设置默认页面
def default(request):
    return HttpResponse('not find!')

urlpatterns = [
    url(r'^',default),# 放在最后
]
  • 6.为路由映射设置别名
def index(request):
    user_list = [
        'spring',
        'summer',
        'autumn',
        'winter',
    ]
    v = reverse('n1')
    print(v)

    return render(request,'index.html',{'user_list':user_list})


urlpatterns = [
    url(r'^index/', views.index,name='n1'),
]

<body>
    <form method='POST' action="{%url 'n1'%}"
    ...
</body>




def edit(request,a1):
    v = reverse('n2',args=(1,))
    print(v)

    return HttpResponse(json.dumps(a1))
urlpatterns = [
    url(r'^edit/(\w+)', views.edit,name='n2'),
]

<body>
    <form method='POST' action="{% url 'n1' i %}" #传值
    ...
</body>



def edit(request,a1,a2):
    v = reverse('n2',kwargs={'a1':222,'a2':333})
    print(v)

    return HttpResponse(json.dumps((a1,a2)))
urlpatterns = [
    url(r'^edit/(?P<a1>\w+)/(?P<a2>\w+)/',
    views.edit,name='n2'),
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值