Django 子程序

在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。

Django的视图编写是放在子应用中的

创建子应用

  python manage.py startapp 子应用名称   #manage.py是创建工程时自动生成的管理文件

  admin.py 文件跟网站的后台管理站点配置相关。

  apps.py 文件用于配置当前子应用的相关信息。

  migrations 目录用于存放数据库迁移历史文件。

  models.py 文件用户保存数据库模型类。

  tests.py 文件用于开发测试用例,编写单元测试。

  views.py 文件用于编写Web应用视图。

注册安装子应用

  创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。

  在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:

  

 添加好应用后在子应用程序内创建好设定路由文件,路由文件名可以自定义

路由文件:

from django.urls import path,re_path

#导入views内写好的方法
from myapp.views import myapp_index

#写路由配置列表,注意路由尽量不要于主应用路由重名否则会冲突
urlpatterns = [
    path("",myapp_index),
]

主应用路由包含子路由(include)

"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
#使用include模块
from django.urls import path,include
urlpatterns = [
    #第一个参数为前缀 直接包含子应用的路由文件
    path('admin/', admin.site.urls),
    path('myapp',include('myapp.urls')),
]
原文地址:https://www.cnblogs.com/Niuxingyu/p/10367188.html