Django urls.py的集中管理配置
2017-03-26 08:57
302 查看
以前配置在工程同工程名的urls.py管理所有app的url
文件路径
缺点:如果url太多就都写到这里,很乱,很长,没有分类。方然系统提供了一个空格'',作用是写共同的url部分,但是第二个app访问和映射都不同,先看看这种写法吧。
from django.conf.urls import patterns, include, url urlpatterns = patterns('setapp.views', url(r'setapp/index/$','index'), url(r'setapp/time/$','time'), )
不用的app采用不同的映射组,这样在多个app的时候就可以用不用分类,放不同url。这里是一个app没有必要分开
from django.conf.urls import patterns, include, url urlpatterns = patterns('setapp.views', url(r'setapp/index/$','index'), url(r'setapp/time/$','time'), )
urlpatterns += patterns('twoapp.views',
url(r'twoapp/index/$','index'),
url(r'twoapp/time/$','time'),
)
没有app,都有自己的urlpattens管理,看起来简介。但是这个文件中放了所有的,urls映射,我们可不可以把没有urls映射都放到自己的appurl中呢?答案是可以的。
可以在每个app中创建一个urls.py文件,这样每个app的url都自己管理了,结构很清楚,但是不觉得还需要外部配置urls.py中写出找到内部app中urls.py自己的映射。我们在最外部配置文件中的,urls.py中写出:
from django.conf.urls import patterns, include, url urlpatterns = patterns('', url(r'^setapp/',include('setapp.urls')), url(r'^twoapp/',include('twoapp.urls')), )
该映射的意思是
如果你地址中是setapp,就去setapp.urls文件中去找自己具体的映射。
如果你地址中是twoapp,就去twoapp.urls文件中去找自己具体的映射。
所以还需要设置具体。app中的url.py文件,这个文件刚才我已经提到了。
urlpatterns = patterns('twoapp.views', url(r'^index/$','index'), )
工程中的映射,可以定位到app映射文件,在app中写入自己的映射地址。
urlpatterns = patterns('', url(r'^twoapp/',include('twoapp.urls')), )
注意没有$结束符。没有匹配完呢,定位到文件所以加上了include定向函数。
Django的每个项目都有一个总的urls.py
但是整个项目的所有的applications中,不同的路由全部结合在总的urls.py会很混乱;
有这样一种解决方法就是我们在每一个app里面自己编辑一个urls.py,然后在app内的urls.py里面定义自己的路由,然后总的urls.py里include每个app的urls.py文件
like this:
总的urls.py文件,包含两个app,User和Information
[python] view
plain copy
from django.conf.urls import include, url
from django.contrib import admin
from Home import views as Home
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^user/', include('User.urls')),
url(r'^information/', include('Information.urls')),
url(r'^$', Home.Main, name="Main"),
]
User的urls.py:
[python] view
plain copy
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^home/(?P<User_id>[0-9]+)/$', views.UserHome, name='UserHome'),
url(r'^home/(?P<User_id>[0-9]+)/changeinfo/$', views.Changeinfo, name='Changeinfo'),
url(r'^home/(?P<User_id>[0-9]+)/changeimg/$', views.Changeimg, name='Changeimg'),
url(r'login/$', views.login, name='login'),
url(r'logout/$', views.logout, name='logout'),
]
Infomation的urls.py:
[python] view
plain copy
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^(?P<Information_id>[0-9]+)/$',views.Information,name='information'),
url(r'^essayList/(?P<EssayList_page>[0-9]+)/$',views.EssayList,name="EssayList"),
url(r'edit/$', views.edit, name='edit01'),
url(r'store/$', views.store, name='edit'),
]
相关文章推荐
- [urls.py设置技巧]Django urls.py的了解与基本配置
- Python的Django框架完成一个完整的论坛(2.urls.py配置、静态文件)
- 我和Django那些事儿(5)----站点管理和静态文件配置urls.py和settings.py
- Django urls.py的了解与基本配置
- django logging在settings.py文件里配置 .
- django应用找不到settings配置文件,但settings.py文件确实存在的问题
- django之创建第7-3个项目-在站点blog下单独创建urls.py文件
- Django~urls.py--->views.py
- django 多站点urls配置
- Django学习——setting.py源码解析与常用配置
- Django中app的urls的配置和基本的数据查询
- Django urls配置方式
- django中在主项目urls.py中调用app中的urls.py
- django之session使用的setting.py配置
- urls.py的三种配置写法
- django中的settings.py中数据库配置介绍
- Django(settings.py配置)
- django 多站点urls配置
- django settings.py 配置文件
- [urls.py设置技巧]urls.py的三种配置写法