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')), ]