django路由系统

Django是Python开发中常用的web框架。一个django请求的生命周期可分为以下几部,
1 url对应关系(匹配)–.2视图函数–>3返回用户字符串或者html文件。

简单的路由

在简单的django开发中,我们可以在django工程下的url里写我们的url对应关系。

from django.contrib import admin
from django.urls import path,re_path
from app import views
#这里app为所创建app的名字,views为创建app下的视图函数
urlpatterns = [
    path('admin/', admin.site.urls),
    path('add/',views.add),
    path('look/',views.look),
  
]

这写在成功创建django工程后的工程的urls.py文件中。在app里的views.py文件中编写自己的对应url的视图函数,这样一个简单的路由系统就算成功了。这里django2.x创建django工程后,url对应关系为path,django1.x里为url。不过大同小异。不过值得注意的是,在path(‘url/’,)里url后面加了/,那么前端请求是在url后面也要加/,如果不加/,在前段也不加,总之要统一。

路由正则

在一些情景中,我们可能会遇到这种url,即url整体不变,只有其中固定部分在改变,在理我们可以使用路由正则来处理。在django2.x中 是这样的

from django.urls import path,re_path
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('add/',views.add),
        path('look/',views.look),
        re_path('update-(\d+)/',views.update),
        re_path('delete-(\d+)/',views.delete),
    ]
    #需要引用re_path, 在对应的视图函数中也要写参数来接受,如
    def delete(request,*args):
         uid=args[0]
         models.UserInfo.objects.filter(id=uid).delete()
         return redirect('/look')
         #用参数组来接受参数

路由name

对url路由关系进行命名,以后可以根据此名称生成自己想要的url。

url(" qqq/", views.qqq, name='i1')

在其他视图函数中,则可以通过name来调此url
例如

  def func(request):
        from django.urls import reverse
        url1=reverse('i1')
        #reverse 为反转,可以通过name反转url

多级路由

对于不同的业务需求,可能有不停app,如果不同业务由不同人员开发,url关系都写着在urls.py里则可能出现url名重复的状况,为了解决这种问题,可以引用多级路由来解决。
在django工程的里urls.py里引用添加引用from django.conf.urls import include

from django.conf.urls import include
urlpatterns = [
            path('admin/', admin.site.urls),
            path('add/', include("app.urls"),
            path('look/',views.look),
            ]

然后在app里的创建urls.py里这样写

from app import views 
urlpatterns = [
            path('admin/', admin.site.urls),
            path('aaa/', views.aaa),
            ]

视图函数依旧写在app里的views.py里
.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值