Django的MTV模式解释:
如下摘自苑老师博客:
- Model(模型):负责业务对象与数据库的对象(ORM)
- Template(模版):负责如何把页面展示给用户
- View(视图):负责业务逻辑,并在适当的时候调用Model和Template
- 控制器:在页面输入URL事,进行URL的识别后转发给模板,同时从模板接收HTML文件输出给用户
![]()
在书籍检索项目增删改查的场景说明:
查(所有搜索): /index/
- 用户在浏览器输入127.0.0.1:8000/index/, 访问服务器的/templates/index.html;
- cms/uls.py收到此请求,匹配 url(r'^index/', views.index);
- migrations/views.py收到请求,匹配 def index;
- 匹配bookList语句,Models转换成sql语句,去数据库取数据;
- 结果返回给index.html,输出给用户。
查(关键字搜索): /index/
- 用户在任意页面上方导航栏输入搜索关键字, 访问服务器的/templates/search.html;
- cms/uls.py收到此请求,匹配 url(r'^search/(\w+)', views.searchBook)
- migrations/views.py收到请求,匹配 def searchBook;
- 匹配bookListC语句(通过title__icontains进行模糊匹配,类似于%like%),Models转换成对应sql语句,去数据库取数据;
- 结果返回给search.html,输出给用户。
增: /add/
- 用户在任意页面上方导航栏右侧点击“书籍添加”, 访问服务器的/templates/add.html;
- cms/uls.py收到请求,匹配 url(r'^add/', views.add),
- migrations/views.py收到请求,匹配 def add;
- 新页面输出add.html,输出给用户。
- 用户输入书籍信息,通过views.py进入views.py中def add的if循环;
6.匹配models.Book.objects.createb语句,Models转换成对应sql语句,去数据库插入数据;
- 返回/index/,用户显示首页。
删: /del/*
- 用户在首页,或者检索页面点击某一条结果右侧的“删除” ,访问服务器的/templates/del.html;
- cms/uls.py收到此请求,匹配 url(r'^del/(\d+)', views.delBook);
- migrations/views.py收到请求,匹配 def delBook;
- 匹配models.Book.objects.filter(id=id).delete()语句,Models转换成sql语言,去数据库删除数据;
- 结果返回给/index/,输出给用户。
改: /edit/*
- 用户在任意页面上方导航栏右侧点击“书籍添加”, 访问服务器的/templates/edit.html;
- cms/uls.py收到请求,匹配 url(r'^edit/(\d+)', views.editBook)
- migrations/views.py收到请求,匹配 def edit;
- 新页面结果返回该id的所有数据给edit.html,输出给用户。
- 用户更改书籍信息,通过views.py进入views.py中def edit的if循环;
6.匹配models.Book.objects.filter语句,Models转换成对应sql语句,去数据库修改数据;
- 返回/index/,用户显示首页。
posted on
2017-11-10 15:09
HugoYao
阅读(
265)
评论()
收藏
举报