django1与2路由的差别

在django1中的url在django2中为re_path
django2中新增了path
1.from django.urls import path
2.不支持正则,精准匹配
3.有5个转换器(int,str,slug,path,uuid)
4.自定义转换器:
1 写一个类:
class Test:
regex = '[0-9]{4}'
def to_python(self, value):
# 写一堆处理
value=value+'aaa'
return value
def to_url(self, value):
return '%04d' % value
2 from django.urls import register_converter
3 register_converter(Test,'ttt')
4 path('index/<ttt:year>', views.index,name='index'),

MVC和MTV

    M          T                 V

	models	   template         views

	M          V                 C(路由+views)
models 模板 控制器 其实MVC与MTV是一样的,django中为MTV,数据交互层,视图层以及控制层

视图层:request对象

request对象:
# form表单,不写method ,默认是get请求
# 1 什么情况下用get:请求数据,请求页面,
# 2 用post请求:向服务器提交数据
# request.GET 字典
# request.POST 字典
# 请求的类型
# print(request.method)
# 路径
# http://127.0.0.1:8000/index/ppp/dddd/?name=lqz
# 协议:ip地址和端口/路径?参数(数据)
# print(request.path) -->/index/ppp/dddd/
# print(request.get_full_path()) -->/index/ppp/dddd/?name=lqz

三件套

render
HttpResponse
redirect

JsonResponse

向前端页面发json格式字符串
封装了json
from django.http import JsonResponse dic={'name':'lqz','age':18}
li=[1,2,3,4] return JsonResponse(li,safe=False)

CBV和FBV

CBV(class base view)和FBV(function base view)

cbv:

from django.views import View
class Test(View):
def dispatch(self, request, *args, **kwargs): # 分发
# 可加逻辑判断语句
obj=super().dispatch(request, *args, **kwargs)
# 可加逻辑判断语句
return obj
def get(self,request):
obj= render(request,'index.html')
print(type(obj))
return obj
def post(self,request):
return HttpResponse('ok') urls中:
re_path(r'index/', views.Test.as_view()),

简单文件上传

html中:
<form action="" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="name">
密码:<input type="text" name="password">
文件:<input type="file" name="myfile">
<input type="submit">
</form> views中
class Cbv(View):
def dispatch(self, request, *args, **kwargs):
obj = super().dispatch(request, *args, **kwargs)
return obj def get(self,request):
return render(request,'index.html') def post(self,request):
aaa = request.FILES.get('myfile')
with open(aaa.name,'wb') as f:
for line in aaa.chunks():
f.write(line)
return HttpResponse('ok')

django2与1的差别和视图的更多相关文章

  1. 《玩转Django2.0》读书笔记-探究视图

    <玩转Django2.0>读书笔记-探究视图 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 视图(View)是Django的MTV架构模式的V部分,主要负责处理用户请求 ...

  2. 使用pycharm开发web——django2.1.5(四)视图和模板相关

    刘老师说这块很重要..... 应该是很重要,大概看了一下,这里面关于views中函数作用,大概看来可能就是相应请求,传入数据和跳转,基本功能上貌似这些框架都差不多吧(其实我并没用过3个框架以上.... ...

  3. Django2.0路由层-URLconf

    目录 DJango2.0路由层-URLconf 概述 urlpatterns 实例 path转换器 自定义path转换器 使用正则表达式 命名组(有名分组) URLconf匹配请求URL中的哪些部分 ...

  4. Angular系列---- AngularJS入门教程03:AngularJS 模板(转载)

    是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模 ...

  5. Angular系列----AngularJS入门教程01:AngularJS模板 (转载)

    是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模 ...

  6. AngularJS是为了克服HTML在构建应用上的不足而设计的

    AngularJS中文网:http://www.apjs.net/ 简介   AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构 ...

  7. AngularJS 模板

    一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模式解耦代码和分离关注点.考虑到这一点,我们用AngularJS来为我们的应用添加一些模型.视图和控制器 ...

  8. 【转载】图灵AngularJS入门教程

    摘自图灵的AngularJS入门教程:http://www.ituring.com.cn/article/13471 感觉非常不错,所以推荐到首页一下! (一)Hello World! 开始学习Ang ...

  9. Core Animation学习总结

    文件夹: The Layer Beneath The Layer Tree(图层树) The Backing Image(寄宿层) Layer Geometry(图层几何学) Visual Effec ...

随机推荐

  1. python模块中requests参数stream

    PS:这个参数真没用过 当下载大的文件的时候,建议使用strea模式. 默认情况下是false,他会立即开始下载文件并存放到内存当中,倘若文件过大就会导致内存不足的情况. 当把get函数的stream ...

  2. webpack版本1与版本2的若干写法区别

    2.x的环境遇到类似this._init is not a function的报错. 版本1.x的写法: resolve: { extensions: ['', '.js', '.vue'] }, m ...

  3. mysql之数据库操作进阶(三)

    环境信息 数据库:mysql-5.7.20 操作系统:Ubuntu-16.04.3 查询 条件查询 # 使用where关键字 select * from 表名 where 条件 # 比较运算符 > ...

  4. linux 设备树【转】

    转自:http://blog.csdn.net/chenqianleo/article/details/77779439 [-] linux 设备树 为什么要使用设备树Device Tree 设备树的 ...

  5. HDU 6118 度度熊的交易计划 最大费用可行流

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6118 题意:中文题 分析: 最小费用最大流,首先建立源点 s ,与超级汇点 t .因为生产一个商品需要 ...

  6. css3属性书写的时候带的一些前缀的意思

    使用css3属性时,大部分都要带这些识别前缀,早期点的浏览器才能识别.现在最新版的浏览器基本都支持css3 基本都不用写前缀 ,写前缀是为了向前兼容老版本的浏览器而已. -ms-transform: ...

  7. IntelJ IDEA 进行Java Web开发+热部署+一些开发上的问题

    基本上像放弃MyEclipse或者Eclipse了,因为IDEA现在也有对应的版本旗舰版和社区版了,而且使用更贴心,更给力,为什么还要选一个难用的要死的东西呢? 最近要开发一个Java Web项目,所 ...

  8. 3.22. grep sed re

    1.整理正则表达式博客 re  http://www.cnblogs.com/oyoui/p/6599846.html 2.grep(正则表达式及字符处理) 1.显示出所有含有root的行: [roo ...

  9. 微信小程序-二维码汇总

    小程序二维码在生活中的应用场景很多,比如营销类一物一码,扫码开门,扫码付款等...小程序二维码分两种? 1.普通链接二维码 即跟普通的网站链接生成的二维码是一个意思,这种二维码的局限性如下: 对于普通 ...

  10. Java学习笔记(二)——Java操作properties文件

    [前面的话] 前段时间在学习和玩java web相关的东西,对于这些技术,一边学习,一边做东西,一边总结,希望可以一边成长和有所收获.有时总是思考太多反而成为了前进的阻力,所以对于生活还是简单一些,不 ...