视图层(views.py)

django必会三板斧
HttpResponse >>> 返回字符串
render >>> 支持模板语法,渲染页面,并返回给前端
redirect >>> 重定向(即可以重定向到别人的网址,也可以重定向到自己路由)

django返回的数据都是HttpResponse对象

JsonResponse(返回json格式的数据)  如何将json打包的汉字不被编译

用到了一个技术点:

from django.http import JsonReponse
import json def index(reuqest):
return JsonReponse({"name":"大帅比”,“age”:18},json_dumps_params = {"ensure_ascii":False})

FBV与CBV
FBV:基于函数的视图
CBV:基于类的视图(查看源码发现用到了 闭包技术  和反射技术)

from django.views import View

class Login(View):
def get(self,request):
# return HttpResponse('get')
return render(request,'login.html')

def post(self,request):
return HttpResponse('post')
源码补充:
第一个疑问:
url(r'^login/',views.Login.as_view()) # >>>等价于 url(r'^login/',views.view)

第二个疑问:
为什么我get请求就走get方法,post请求就走post方法

文件上传
前端需要注意的地方
form表单method必须是post
enctype必须是multipart/form-data

文件上传
前端需要注意的地方
form表单method必须是post
enctype必须是multipart/form-data
def upload(request):
if request.method == 'POST':
# print(request.FILES)
# print(type(request.FILES))
# print(request.FILES.get('myfile'))
# print(type(request.FILES.get('myfile')))
# 获取文件对象
file_obj = request.FILES.get('myfile')
# print(file_obj.name)
# 获取文件名
file_name = file_obj.name
# 文件读写操作
with open(file_name,'wb') as f:
# for line in file_obj:
for line in file_obj.chunks():
f.write(line)
return render(request,'upload.html')

django 实战篇之视图层的更多相关文章

  1. 【微信小程序】开发实战 之 「视图层」WXML & WXSS 全解析

    在<微信小程序开发实战 之 「配置项」与「逻辑层」>中我们详细阐述了小程序开发的程序和页面各配置项与逻辑层的基础知识.下面我们继续解析小程序开发框架中的「视图层」部分.学习完这两篇文章的基 ...

  2. Django 路由层与视图层

    1.路由层 1.1无名分组 1.2 有名分组 1.3 反向解析 1.4 路由分发 1.5 名称空间 2.伪静态网页 3.虚拟环境 4.视图层 1.1 JsonResponse 1.2 FBV与CBV ...

  3. Django路由层与视图层、pycharm虚拟环境

    一. Django路由层 路由层即对应项目文件下的urls.py文件.实际上每个APP中也可以有自己的urls.py路由层.templates文件夹及static文件夹.Django支持这么做,也为实 ...

  4. django 实战篇之模板层

    模板层 ​ {{}} 变量相关 ​ {%%} 逻辑相关 ​ 前端获取容器类型的数据统一使用 句点符(.) ​ 两种给模板传递值的方式 return render(request,'index.html ...

  5. django 实战篇之路由层

    路由层 如何给网页添加首页及尾页 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'test',views.test), url(r'te ...

  6. Django之深入了解视图层

    目录 视图层三板斧 HttpResponse render redirect JsonResponse FBV CBV CBV源码 如何给FBV和CBV加装饰器 视图层三板斧 规定视图函数必须有一个返 ...

  7. Django路由层、视图层

    一.路由匹配: 第一个参数是正则表达式,匹配规则按照从上往下一次匹配,匹配到一个后立即停止 urlpatterns = [ url(r'^admin/', admin.site.urls), url( ...

  8. Django的View(视图层)

    目录 Django的View(视图层) 一.JsonResponse 二.后端接收前端的文件 三. FBV和CBV(源码分析) 四.settings.py配置文件源码分析 五. 请求对象(HttpRe ...

  9. Django路由层与视图层

    表与表之间建关系 图书管理系统为例 书籍表 出版社表 作者表 三个表之间的关系: 考虑表之间的关系:换位思考 1.书籍和出版社是一对多,外键字段建立在书籍表中 2.书籍和作者是多对多, 需要建立第三方 ...

随机推荐

  1. mpvue-Vant Weapp踩坑记

    微信开发者工具:开发.调试和模拟运行微信小程序的最核心的工具了,所以必须安装 # 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 mpvue- ...

  2. ESXI 6.5安装详细步骤

    网址:http://blog.51cto.com/laotang6/2044861 ESXi是专为运行虚拟机.最大限度降低配置要求和简化部署而设计.只需几分钟时间,客户便可完成从安装到运行虚拟机的全过 ...

  3. Linux 版本svn安装

    CentOS6.5离线安装subversion 下载 linux rpm安装包 (我只下载了subversion-1.6.12-1.rhel5.x86_64.rpm),直接安装时会提示缺少依赖,在 r ...

  4. 【LOJ6067】【2017 山东一轮集训 Day3】第三题 FFT

    [LOJ6067][2017 山东一轮集训 Day3]第三题 FFT 题目大意 给你 \(n,b,c,d,e,a_0,a_1,\ldots,a_{n-1}\),定义 \[ \begin{align} ...

  5. JS获取字符串实际长度(包含汉字)的简单方法

    方法一: var jmz = {}; jmz.GetLength = function(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary&g ...

  6. 解决mysql表不能查询修改删除等操作并出现卡死

    问题现象1:进程wait卡住 测试环境mysql出现了一个怪表:select查询表卡死,alter修改表卡死,甚至我不想要这个表了,delete.truncate.drop表都卡死卡主了...... ...

  7. 20165223 《信息安全系统设计基础》 实现mypwd

    一.学习pwd命令 1. pwd命令简介 英文原名:Print Working Directory 指令功能:打印出当前工作目录 执行权限:All User 指令所在路径:/usr/bin/pwd 或 ...

  8. CodeForces 70

    题目 A题 #include<bits/stdc++.h> using namespace std; int n,b,sum; int main(){ scanf("%d&quo ...

  9. js获取url参数(通用方法)

    function getUrl(name="") { var url = location.search; //获取url中"?"符后的字串 var theRe ...

  10. 第四届CCCC团体程序设计天梯赛 后记

    一不小心又翻车了,第二次痛失200分 1.开局7分钟A了L2-3,一看榜已经有七个大兄弟排在前面了,翻车 * 1 2.把L1-3 A了18分,留了两分准备抢顽强拼搏奖,最后五秒钟把题过了,万万没想到还 ...