如果不拆分应用,views.py和models.py文件过于臃肿,可以按照如下方法进行拆分,目录结构:

models必须是包(也就是存在__init__.py):

__init__.py文件内容:

from .gradeModel import *
from .personModel import *
from .studentModel import * 

 

在定义model的类中加一个内部类Meta:

from django.db import modelsfrom app.models import Gradeclass Student(models.Model):s_name=models.CharField(max_length=16)s_grade=models.ForeignKey(Grade, on_delete=models.CASCADE)class Meta:app_label = 'Student'

  

views也是包

__init__.py文件内容:

from .person import *

 

services作为服务层,复杂的业务逻辑可以放到里面,通过view调用

整体目录结构:

 

转载于:https://www.cnblogs.com/winstonsias/p/11547878.html

Django model、view拆分,添加service相关推荐

  1. Django Model View Template 之间的简单交互 (二)

    前言 接续前文,上一篇文章主要涉及了 Django 项目的基础配置等,这篇主要涉及数据库相关的 ORM ,也就是 Django 中的 Model 的使用,MVT 三层之间的交互 教程基本都是东拼西凑的 ...

  2. Django——model基础

    ORM 映射关系: 表名 <-------> 类名字段 <-------> 属性表记录 <------->类实例对象 创建表(建立模型) 实例:我们来假定下面这些概 ...

  3. Django Model设计详解

    Django Model 设计 Django Model设计是Django五项基础核心设计之一(Model设计,URL配置,View编写,Template设计,From使用),也是MVC模式中重要的环 ...

  4. QT Model/View 编程:MVC模型视图编程:实例实现(二)

    目录 样例001:现有模型中使用视图Using views with an existing model 样例002:使用模型索引 样例003:使用模型 样例004:使用模型的多个视图 样例005:委 ...

  5. Qt Model/View 学习笔记 (四)

     创建新的Models 介绍 model/view组件之间功能的分离,允许创建model利用现成的views.这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和Q ...

  6. 使用ASP.NET实现Model View Presenter(MVP)

    作者:Billy McCafferty 翻译:张善友<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office: ...

  7. django model

    本文一篇完全介绍django的最重要的model 6.django model 模型是数据唯一而且准确的信息来源.它包含正在储存的数据的重要字段和行为.一般来说,每一个模型都映射一个数据库表. 这个模 ...

  8. Qt学习笔记-----Model/View架构之自定义Model

    Model/View Framework中提供了模型model的抽象基类QAbstractItemModel, 如果需要自定义模型就需要继承这个类并且实现一些必要的函数. 此外,Qt中又提供了QAbs ...

  9. django model数据 时间格式

    from datetime import datetime dt = datetime.now() print '时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( ...

  10. Django的View(视图)

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

最新文章

  1. Android LinearLayout的android:layout_weight属性
  2. 开发日记-20190422 关键词 插件化(1)概述
  3. Python max() 函数
  4. MFC Windows 消息发送顺序
  5. samba 端口_无需公网IP,易有云支持SAMBA远程连接家里设备
  6. PHP在金山游戏运营中的应用
  7. WCF学习之旅—第三个示例之四(三十)
  8. 减少系统进程【ZT】
  9. 安装Ubuntu系统后的配置工作
  10. 寒江独钓——win内核编程读书笔记-1
  11. 【Python精彩案例】随拍文档转PDF扫描版
  12. 疯了! Python 成功预测前三场比赛,快看今天的?(附代码及比赛时间表)
  13. 萌言萌语|测试工作日报及总结
  14. 等额本息和等额本金实现步骤
  15. js操作图片像素进行编辑
  16. 长文:读《经济学32定律》
  17. AndroidIOS APP启动速度专项测试方法
  18. 【智慧农业】智慧温室建造流程
  19. 温故知新(五)——三参数陷波滤波器离散化推导及MATLAB实现
  20. eclipse如何修改工作空间名称

热门文章

  1. 【2021云边协同大会】阿里云周哲畅聊边缘云基础设施创新发展及场景化实践
  2. 大家都在聊的人工智能,究竟是什么?
  3. apk ionic 破损_cordova – ionic build android不生成任何.apk文件或错误
  4. 技术分享:游戏中的 2D 可见性
  5. 使用Unity从零点五开始,做半个不能玩的小游戏(完)
  6. PMP每日三题2022年2月11日
  7. HTML高亮标签<mark></mark>
  8. Git利用命令行提交代码完整步骤
  9. Shell命令-文件及内容处理之split、paste
  10. Linux CenOS Python3 和 python2 共存