博客五部曲之一 - 简单博客


1213 浏览 5 years, 4 months

13 应用内的URL

版权声明: 转载请注明出处 http://www.codingsoho.com/

可以把URL映射都放在跟URL里,也可以通过在应用内创建属于这个应用自己的URL,使URL映射更灵活。

在posts下面创建新文件urls.py,并修改csblog.urls.py文件,用include来引用posts应用的URLs。

from django.conf.urls import url, include

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^posts/', include("posts.urls")),
]

本例中,我们按照CRDU在view中创建几个函数 作为演示

def post_create(request):
    return HttpResponse("<h1>Create</h1>")

def post_detail(request):
    return HttpResponse("<h1>Detail</h1>")

def post_update(request):
    return HttpResponse("<h1>Update</h1>")

def post_delete(request):
    return HttpResponse("<h1>Delete</h1>")

def post_list(request):
    return HttpResponse("<h1>List</h1>")  

在应用内部URL添加映射入口

from . import views
urlpatterns = [
    url(r'^$', views.post_list),
    url(r'^create/', views.post_create),
    url(r'^detail/', views.post_detail),    
    url(r'^update/', views.post_update),
    url(r'^delete/', views.post_delete),
]

URL匹配按顺序进行,碰到匹配的就会退出,不会继续往下搜索,所以在设定正则表达式的时候注意顺序。

Posts应用的访问网站前面都会有一个posts,例如访问更新视图链接为 posts/update