zoukankan      html  css  js  c++  java
  • Django-路由系统

    我们以前写的URL --> 函数的都是一 一对应关系。还有另外一种

    一一对应的有一个缺点就是只有访问规定的这个URL才会访问到指定界面。特别是在编辑时指定的界面如:

    127.0.0.1:8000/edit/?nid=alex     ------    ?是get传参的标志。

    127.0.0.1:8000/edit/alex       -------------我们想要这样的

    这样就对SEO不利(百度爬虫收录不进去,人家以为你这url是get传参是不稳定的,所以影响首页排名展示曝光)。

    1.路由系统 ur1->函数

    a. /login/-> def login
    b. /add-user/(d+)/-> def add_user(request,a1)
    #其实URL后面可再加一个数字,也可以增加正则表达式;然后这个长串的URL就和后面的函数建立对应关系.这就是动态路由

     也就是修改URL为这样:

        path('edit_class/(w+)/',views.edit_class),
    #w+ 的意思就是可以数字、字母、下划线
    path('edit_class/(w+)/.html$',views.edit_class),
    #伪静态,SEO更高 $是终止符

    那对应的views函数怎么改?这样写的话url就没有以get形式传,我们就不能用get收。就要用特殊的方式收。

    以前我们知道在定义函数的时候可以放request参数,其实还可以定义随便一个参数如a1

     

     可以写多个正则表达式,只要后面加对应参数

     

     路由分发:项目里程序员间url避免命名重复

     

     别名反向生成URL

    实际开发中路径非常深就体现这个用处了,不用自己写了;权限管理会用到。

     1.在 Python代码中

    path('edit_class/(w+)/',views.edit_class,name='m1'),
    
    from djangourls import reverse
    v= reverse(m1, kwargs={a1:1111})

    123

    为美好的生活奋斗!
  • 相关阅读:
    UVA 11235 Frequent Values ---RMQ
    UVA 12266 Stock prices --优先队列
    HDU 1896 Stones --优先队列+搜索
    POJ 1442 Black Box -优先队列
    POJ 2263 Heavy Cargo 多种解法
    POJ 3250 Bad Hair Day --单调栈(单调队列?)
    FZU1894 志愿者选拔 --单调队列
    POJ 2823 Sliding Window 再探单调队列
    UVA 11992 Fast Matrix Operations (二维线段树)
    两道相似KMP题
  • 原文地址:https://www.cnblogs.com/ethtool/p/12268819.html
Copyright © 2011-2022 走看看