Django的MTV分别代表:
Model (模型):     负责业务对象与数据库的对象(ORM)
Template (模版):负责如何把页面展示给用户
View (视图):       负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
一、URL控制器
urls.py 文件
1、基本配置
url(r'^index/', views.index)
url:匹配的是url的路径部分
通常会添加1个
url(r'^$/', views.index),
在访问时,如果只有域名,没有路径会找到index    //127.0.0.1:8080

1 一旦匹配成功则不再继续
2 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。分组
3 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。
4 每个正则表达式前面的'r' 是可选的但是建议加上。

2、分组
用来捕获URL 中的值
捕获的参数永远是字符串
无名分组
url(r'^articls/(\d{4})/(\d{2})$', views.archive),
以位置参数传递给视图:def  archive1(request,a,b):
有名分组
url(r'^articls/(?P<y>\d{4})/(?P<m>\d{2})$', views.archive2),
作为关键字参数传递给视图函数:def archive2(request,y,m):

3、反向解析URL 
name参数,别名
url(r'^login/', views.login,name="Login"), 
在template里:
<a href='{% url 'Login' %}'>click</a>

这样做的好处:
通常1个 r'^login/' 对应很多html的很多地方
在url里修改 正则 r'^login/'时,不用再去修改 html里的表单等url了
4、include
当url 比较多,容易混乱时,可以用include方法来配置
from django.conf.urls import url,include
urlpatterns = [
    url(r'^app01/',include('app01.urls')),
]
要在app01的文件中创建urls
用户请求的url 也要是app01 开头

二、View (视图)
后端逻辑,返回响应
1、request学过的方法:
request.method              --> 获取具体的请求方法:GET/POST等
request.POST.get()         --> 取提交的数据里面的参数  #get("key",1)取key值,如果没有则取到1
request.POST.getlist()     --> 提交的是列表的数据类型
request.GET.get("key")      --> 取URL里面的参数
request.GET.getlist("key")  --> 取值,值为列表
request.COOKIES.get("key")  --> 获取具体的cookie值
request.session
request.get_full_path()    --> 获取请求的URL(包括后边的?)
request.path_info            -->取到要访问目录的,"/index/",不包括后边的?参数等
request.path                   -->同path_info
request.body                  -->字节串,表请求报文的主体。在处理非 HTTP 形式的报文时非常有用,例如:二进制图片、XML,Json等。
request.is_ajax()            -->判断是不是ajax请求
request.FILES            --->类似于字典的对象,包含所有的上传文件信息。
#注意,FILES 只有在请求的方法为POST 且提交的<form> 带有enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象。

2、新手三件套
from django.shortcuts  import  HttpResponse   
# 直接返回字符串内容时,用return HttpResponse("字符串")
from django.shortcuts  import  render
#渲染
返回html的文件时,return  render(request,"login.html",)
传参时:return  render(request,"login.html",{"user_lst":变量名})  
from django.shortcuts  import redirect
#重定向  return redirect("http://www.oldboyedu.com";) 可以绝对或相对

render 渲染
render(request, template_name[, context])
结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。
是在返回前就已经渲染完毕了
render(request, 'xx.html',locals()) #把当前函数里的所有局部变量都传进去
#本质是:
t=Template("<html><body>当前时刻:{{current_date}}</body></html>")
c=Context({"current_date":c})
html=t.render(c)
return HttpResponse(html)

redirect 重定向到某个路径
两次请求过程
可以在浏览器的控制窗口Network 看到两次请求的过程
render 和 redirect的区别
登录时,经历的过程:
第一次请求:
    请求url: http://127.0.0.1:8000/login.html/      GET     无请求数据
    login.html/-------> views.login------>login()
    响应到一个login.html页面
第二次请求:
    请求url: http://127.0.0.1:8000/login.html/     POST    有请求数据  {"user":"alex","pwd":"123"}
    login.html/-------> views.login------>login()
    响应的return redirect("/index/")到浏览器,通知浏览器再发送请求:"/index/"    
第三次请求:
    请求url: http://127.0.0.1:8000/index/       get请求   没有数据
    index/ --->url(r'^index/', views.index),---->index()              
    响应一个index.html

 

转载于:https://www.cnblogs.com/tangjianyu/p/8018742.html

MTV模型—urls和view相关推荐

  1. django 之MTV模型

    一个小问题: 什么是根目录:就是没有路径,只有域名..url(r'^$') 补充一张关于wsgiref模块的图片 一.MTV模型 Django的MTV分别代表: Model(模型):和数据库相关的,负 ...

  2. Django基础篇之MVC与MTV模型

    目录: MVC和MTV架构 MVC 模型 MTV 模型 MVC和MTV架构 MVC 模型 MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基 ...

  3. MVC模型和MTV模型

    MVC模型 MVC 设计模型是一种使用 Model View Controller( 模型-视图-控制器)设计创建 Web 应用程序的模式. Model(模型):是应用程序中用于处理应用程序数据逻辑的 ...

  4. Django 数据库查询优化,choices参数(数据库字段设计常见),MVC和MTV模型,多对多三种创建方式...

    数据库查询优化 orm语句的特点:惰性查询 如果仅仅只是书写了orm语句,在后面没有用到该语句所查询出来的参数,那么orm会自动识别,并不执行 举例: res = models.Book.object ...

  5. Django MTV模型思想

    一.Django的MTV分别代表: 1.Model(模型):负责业务对象与数据库的对象(ORM) 2.Template(模版):负责如何把页面展示给用户 3.View(视图):负责业务逻辑,并在适当的 ...

  6. Django MTV - 模型层 - (专题)知识要点与实战案例

    Django- 模型层(models)知识要点与实战案例 (专题概述及索引) 概述:本专题以讨论Django中模型层相关的基础知识,这些基础知识在我们的日常开发中有着相当重要的作用.模型(models ...

  7. MVC模型与MTV模型流程图

  8. MTV和MVC模型和创建Django项目

    MVC与MTV模型 MVC模型 MVC,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),他们之间以一种插件式的.松耦合 ...

  9. Lakes Environmental ARTM View v1.4.2 1CD放射物扩散模拟模型

    Lakes Environmental ARTM View v1.4.2 1CD放射物扩散模拟模型 Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包 ARTM(Atmosph ...

  10. python_Django之模板模型

    主要文件 manage.py      创建服务器 settings.py    项目的配置信息 urls.py         URL分发器(URLconf----URL和函数的映射表) view. ...

最新文章

  1. 内存的静态分配和动态分配的区别【转】 静态分配内存与动态分配内存的区别
  2. 小白重装系统教程_重装解决99%的电脑问题:小白U盘重装系统教程
  3. 采购订单增强(根据公司代码、采购订单类型等相关订单信息给采购订单税码设置默认值)
  4. si24r1程序_简要分析SI24R1替代兼容NRF24L01P
  5. SQL Server 2012笔记分享-6:理解内存管理
  6. oppo专用计算机,OPPO手机助手
  7. 一条来自 GitHub 重磅消息!
  8. mysql 原理 ~ 并行复制
  9. Windows XP 优化设置注册文件集合(共80项,请谨慎使用)
  10. CH579 以太网转串口 串口服务器代码!
  11. MySQL必知必会——数据库基础知识和MySQL基本使用
  12. MUI框架开发app中出现的问题(持续更新中...)
  13. 如何创建一个facebook账户
  14. 怎么用python写脚本刷金币_教你如何利用Python实现王者荣耀自动刷金币脚本
  15. 一分钟教你批量制作视频的胶卷效果
  16. AD PCB布板提示The following exception occurred whilst loading section primitive paramenters...解决方法
  17. 微信小程序基于OCR插件实现图文识别(超简单)
  18. 清华大学视频:ARM微控制器与嵌入式系统
  19. 利用C 制作公章 续
  20. 数字转字母python_将一串数字转换成字母python

热门文章

  1. 使用 JavaScript File API 实现文件上传
  2. JAVA 调用Web Service的方法(转)
  3. LINQ to SQL之使用Lambda Expression批量删除数据
  4. 【BERT】BERT中CLS效果真的好嘛?这篇文章告诉你答案
  5. 【微软力作】虚拟对抗训练:让预训练模型再次强大!
  6. 【文本摘要】文本摘要(text summarization)最新研究热点、发展趋势、里程碑论文推荐...
  7. 数据结构与算法python—10.二叉树题目leetcode总结
  8. python—将array格式图片保存至文件夹中
  9. 每周荐书:机器学习、Spring MVC、Android(评论送书)
  10. 向模块化进军,创建类