Django url管理之include
来源:互联网 发布:喜马拉雅视频剪辑软件 编辑:程序博客网 时间:2024/06/04 01:05
在Django框架中,提供了非常清晰简洁的url管理方法,在新建一个project之后(此处为myproject),然后在项目中建立一个app(此处为myapp),会生成如下目录结构:
一般所熟知的就是在myproject/myproject/urls.py中的urlpatterns列表中来配置 url,每一个列表项就是一个由url函数的调用。例如假定我们想在myapp中定义一个主页,然后通过"http://localhost:8000/myapp/homepage"来访问,首先我们在myproject/myapp/view.py中定义一个叫homePage的函数(名字随意,不一定叫这名字):
from django.shortcuts import renderfrom django.http.response import HttpResponse# Create your views here.def homePage(request): return HttpResponse("<h1>This is home page</h1>")然后在myproject/myproject/urls.py的urlpatterns列表中添加一个url配置:
from django.conf.urls import urlfrom django.contrib import adminfrom myapp.views import homePage#记得导入urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^myapp/homepage', homePage)]然后运行项目,就可以用浏览器通过http://localhost:8000/myapp/homepage来访问。
但是假如一个project中有多个app,用以上的方式来管理url可能会造成比较混乱的局面,为了解决这个问题,我们可以用include的方法来配置url,首先我们在自己的app中建立一个urls.py,即myproject/myapp/目录下建立urls.py,然后在其中输入如下内容:
from django.conf.urls import urlfrom myapp.views import homePageurlpatterns = [ url(r'homepage', homePage),]然后在项目的urls中包含刚刚app中添加的url配置,我们要做的是在myproject/myproject/urls.py输入如下内容:
from django.conf.urls import url, include#导入了include函数from django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^myapp/', include("myapp.urls"))#包含myapp中的urls]然后通过刚刚相同的url(http://localhost:8000/myapp/homepage)访问发现也可以访问了。
综上所述:include函数工作原理是:在接收http请求时,请求的url首先与项目本身的urls.py中配置的字段进行匹配,匹配到合适的在从当前条目中的include的url进行深度匹配,include函数有点在于通过这样的url管理会更加整洁,可扩展性更强。
所有的努力都值得期许,每一份梦想都应该灌溉!
阅读全文
0 0
- Django url管理之include
- Django url管理之include
- Django 使用 include() 配置 URL
- Django模块之include:
- django之url配置
- 基于 Django1.10 文档的深入学习(27)—— django.conf.urls utility functions 之 url(),include(),static()
- Django之逆向解析url
- Django之逆向解析url
- Django中project下的url引入(include)app下的url
- Django视图及URL系列之五
- Django URL
- Django url
- Django---URL
- django urls include用法
- python学习之--Django--Django的管理界面
- Django URLconfs 中通过包含其他URLconfs 来管理部分url相同的url
- Django学习总结之六-站点管理
- Django之model admin自定义后台管理
- C++中栈操作
- numpy.random.choice 中replace 的含义
- 小小项目4:贪吃蛇
- 文本自动生成研究进展与趋势
- python 并集union, 交集intersection, 差集difference
- Django url管理之include
- 算法:数的每个位数相乘等于给出的数,并且这个数是符合条件的数中最小的数
- 文章标题
- [js]圆周运动&类s运动
- Java中BIO NIO AIO
- SQL中的case when then else end用法
- 微信小程序解决方案专辑
- 去掉navigationBar下的横线,以及产生的影响
- VS 程序自动更新——(方案二)