ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Django应用与分布式路由

2022-02-06 16:04:26  阅读:168  来源: 互联网

标签:views django urls contrib path Django 路由 分布式


应用,项目中的独立业务模块,可以保函自己的路由、视图、模板、模型。

一、创建应用

(一)创建应用文件夹

python manage.py startapp [应用名]

(二)settings配置

在settings.py的INSTALLED_APPS中注册

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

二、分布式路由

主路由文件不处理用户具体路由,做请求分发,具体的请求由子路由进行处理。

(一)主路由调用include函数

from django.urls import path, include
from . import views
urlpatterns = [
    path('music/', include(music.urls))

(二)创建子路由

进入app文件见创建urls.py文件

from django.urls import path
from . import views

urlpatterns=[
    path('index',views.index_view)
]

三、应用及分布式路由案例

主路由新增两个music、sport

from django.urls import path, include
from . import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('test_static', views.homepage),
    path('music/', include('music.urls')),
    path('sport/', include('sport.urls')),
]

创建两个APP后,在settings.py中注册

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'music',
    'sport',
]

在music、sport文件夹中创建子路由文件urls.py

from django.urls import path
from . import views
urlpatterns = [
    path('index', views.index_view)
]

完成sport/views.py视图层配置

from django.http import HttpResponse

# Create your views here.
def index_view(request):
    return HttpResponse('这是体育频道')

四、应用下的模板

调用应用下的模板

  1. 应用下手动创建templates文件夹
  2. 在settings.py中开启引用模板功能,即主站settings.py的TEMPLATE配置中的’APP_DIRS’为True
    应用层和外层模板文件夹同时存在是,先找外层模板,然后按照INSTALLED_APPS配置下的应用顺序逐层查找
    可以通过在APP/TEMPLATES文件夹新建一个与APP同名的文件夹来区别,render视图改为"news/index.html"
    在这里插入图片描述

标签:views,django,urls,contrib,path,Django,路由,分布式
来源: https://blog.csdn.net/weixin_44254898/article/details/122798314

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有