django2.0+python3.6:path函数与include函数以及相关知识

本文探讨了在Django2.0和Python3.6环境下,如何在各个应用程序(app)的URL与主URL配置之间建立交互。通过path函数和include函数,可以实现app内部视图与外部URL的有效连接。文章举例说明了在创建多个app(如前端管理和后端管理)时,如何在app的urls.py文件中设置视图,并在主urls.py中进行整合,确保正确导航。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些问题:

在实际应用中,如果所有的视图函数都写在外部的urls中将会是很乱的。不便于管理。所以我们允许在每一个app中建立一个urls文件。比如,在构建一个网站的时候,我们往往需要做一个前端管理以及后端管理,所以我们需要建立两个app,这个以后会涉及到的思路。

如何在一个使得app里面的url与外部url进行互动?

这时候我们就会使用到include函数。

例子:

  • 首先我们建立一个项目名为myproject2,建立两个app,一个名为app1,一个名为app2
  • 在两个app建立urls文件中填入以下代码:

app1/urls.py:

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path("index/",views.index),
    path("logic/",views.logic)
]

app1/views.py:

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return HttpResponse("这是app1的首页")

def logic(request):
    return HttpResponse("这是app1登录页面")

app2/urls.py:

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path("index/",views.index),
    path("logic/",views.logic)
]

app2/views.py:

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return HttpResponse("这是app2的首页")

def logic(request):
    return HttpResponse("这是app2登录页面")
  • 这里已经建立了视图与url的映射关系,但是,还没有建立url与url的关系。

  • 也很简单:在外部(主要的)views.py写入以下代码:

from django.contrib import admin
from django.urls import path,include
from django.http import HttpResponse

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app1/',include("app1.urls")),
    path('app2/',include("app2.urls"))
]
  • 这时候我们就会得到下面的结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 但是当我们访问http://127.0.0.1:8000时,很明显会发生错误,所以我们需要每当访问http://127.0.0.1:8000时,就跳转到app1的登录页面。这部分内容下次再说。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值