Django-应用与分布式路由

文章目录

      • 应用
        • 创建应用
      • 分布式路由
        • 配置分布式路由
      • 应用下的模板

应用

应用在Django项目中是一个独立的业务模块,可以包含在自己的路由,视图,模板,模型

创建应用
  1. 用manger.py中的子命令startapp创建应用文件夹
    python manger.py startapp music
  2. 在settings.py中的 INSTALLED_APPS列表中配置安装此应用
    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'music',
    'bookstore',
    ]
    

分布式路由

Django中,主路由由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件可以做请求的分发(分布式请求处理).具体的请求可以由各自的应用来进行处理

配置分布式路由
  1. 主路由中调用include函数
    语法:include(‘app名字.url模块名’)
    作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理

  2. 应用下配置urls.py
    应用下手动创建urls.py内容结构同主路由完全相同

    # 以访问127.0.0.1:8000/music/index为例
    
    # file:urls.py
    from django.contrib import admin
    from django.urls import path, re_path, include
    urlpatterns = [
    	path("admin/", admin.site.urls),
      	path('music/', include('music.urls')),
    ]
    # file: music/urls.py
    from django.urls import path, re_path
    from . import views
    
    
    urlpatterns = [
    	path('index/', views.index_view),
    ] 
    

应用下的模板

应用内部可以配置模板目录

  1. 应用下手动创建templates文件夹
  2. settings.py中开启应用模板功能
    TEMPLATES配置项中的‘APP_DIRS’值为True即可
    应用下templates和外层templates都存在时,Django的查找模板规则
    1. 优先查找外层templates目录下的模板
    2. 按照INSTALLED_APPS配置下的应用顺序逐层查找

注意: 如果用相同的模板文件,可能会发生上面应用中的文件显示下下面应用视图中,产生顶替,解决方法:在应用模板文件夹中在建立一个应用同名文件夹,把模板放在应用同名文件夹中,在引用是模板前缀就不同了。

你可能感兴趣的:(Django,django)