如果在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});