Django templates 和 urls 拆分

如果在Django项目 下面新建了blog和polls两个APP应用,在每个APP下面都各自新建自己的url和templates,那么我们需要如何进行项目配置呢?

INSTALLED_APPS = [  
    'django.contrib.admin',  
    'django.contrib.auth',  
    'django.contrib.contenttypes',  
    'django.contrib.sessions',  
    'django.contrib.messages',  
    'django.contrib.staticfiles',  
    # 注册自己的APP  
    'blog',  
     
    'polls',  
]

  

然后为这两个APP配置url,在项目的urls.Py中:

from django.conf.urlsimport url, include  
from django.contrib import admin  
   
# 需要先导入对应app的views  
   
urlpatterns = [  
    # 参数第一部分为url的正则表达式,后面的是业务逻辑函数  
     
    # admin后台路由  
    url(r'^admin/',admin.site.urls),  
    url(r'^blog/', include('blog.urls', namespace='blog')),  
    url(r'^polls/', include('polls.urls', namespace='polls')),  
]  

   接下来配置各自的urls.py即可,访问时,加上各自APP的名称,例如:http:localhost:8000/blog/user。

Django搜索模板的默认目录是在Django的项目目录下,若没有则在APP目录下找,由于这里有多个APP,所以每个APP都新建自己名称的目录,防止不同APP存在同名的模板,以至网站找不到自己的模板。

def index(request):  
    blog_list = models.BlogsPost.objects.all().order_by('-timestamp');  
    return render(request, "blog/index.html", {"blog_list":blog_list});  

  

原文地址:https://www.cnblogs.com/wumingxiaoyao/p/7527088.html