django的视图函数
一.视图函数view
视图函数是接收一个请求(request对象),并返回响应的函数
1. HttpResponse响应请求
这个方法是返回字符串一类的,可以识别标签
2. render响应请求
render(request,".html",[**kwargs]),返回一个html页面,参数可以传给html中需要渲染的变量
3. redirect响应请求
redirect(reverse("url"),[*args]),重定向跳转到一个页面
二.CBV和FBV
1. FBV function base views
在视图函数中使用函数处理请求
def index(request):
return HttpResponse("ok")
简单的FBV
2. CBV class base views
在视图函数中使用类处理请求
from django.views import View
class MyView(View):
name = "xxx" # 这是分组传来的参数
def post(self,request):
return HttpResponse("post")
def get(self,request):
return HttpResponse("get") urls.py配置
from app.views import MyView url(r"正则",MyView.as.view(name="xxx"))
简单的CBV
三. 给视图函数加装饰器
1. 给FBV加装饰器
def wrapper(fn):
def inner(*args,**kwargs):
print("before")
ret = fn(*args,**kwargs)
print("after")
return ret
return inner @wrapper
def index(request):
return HttpResponse("ok")
FBV装饰器
2. 给CBV加装饰器
from django.views import View
from django.utils.decorators import method_decorator def wrapper(fn):
def inner(*args,**kwargs):
print("before")
ret = fn(*args,**kwargs)
print("after")
return ret
return inner @method_decorator(warrper,name="get") #第一种
class MyView(View):
name = "xxx" # 这是分组传来的参数 # 这个是分发post,get请求的,也可以用作装饰器
def dispatch(self,request,*args,**kwargs):
print("before")
ret = super().dispatch(request,*args,**kwargs):
print("after")
return ret @method_decorator(warrper) # 第二种
def post(self,request):
return HttpResponse("post")
def get(self,request):
return HttpResponse("get") urls.py配置
from app.views import MyView url(r"正则",MyView.as.view(name="xxx"))
CBV装饰器
request.method 请求方式
request.GET get请求的所有数据,是一个字典
request.POST post请求的所有数据,是一个字典
request.path 请求路径
request.get_full_path() 获取带有参数的路径
request.META() 请求头信息,是一个字典
五. response对象
HttpSponse("xxx") 响应一个字符串,可以识别标签
render(request,".html"[**kwargs]) 响应一个页面,参数可以渲染页面中需要的
redirect() 重定向,跳转到一个页面
django的视图函数的更多相关文章
- Django之视图函数总结
Django之视图函数总结 HttpRequest与HttpResponse http请求中产生两个核心对象: HttpRequest对象:用户请求相关的所有信息(对象) HttpResponse对象 ...
- django views视图函数返回值 return redirect httpresponse总结
django views视图函数返回值 return redirect render httpresponse总结
- Django 定义视图函数
Django 定义视图函数 一.接收内容及文件处理 1.接收分类 # 获取数据 request.GET # 提交数据 request.POST # 获取文件 request.FILES 2.check ...
- 03 Django之视图函数
一.Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受WEB请求并返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...
- Django restframe 视图函数以及ModelSerializer的使用
建立model数据库 from django.db import models __all__ = ['Book', 'Publisher', 'Author'] # Create your mode ...
- Django的视图函数和路由系统中一些没有用过的小点
1.request对象 print("返回用户访问的url,但是不包括域名",request.path_info) print("返回请求的方法,全大写",re ...
- django views视图函数
Django views.py视图文件 一. 创建views.py文件,在工程文件夹根目录创建views.py视图文件,其实任意文件名都可以,使用views是为了遵循传统. 注:所有的views函数都 ...
- Django中非视图函数获取用户对象
今天遇到了一个问题:在Django中怎么从非视图函数中获取用户对象?怎么保证不同的请求获取到不同的用户对象? 平常我们获取用户对象使用的是: request.user 不得不说,这确实很方便. 但是, ...
- django中视图函数的FBV和CBV
1.什么是FBV和CBV FBV是指视图函数以普通函数的形式:CBV是指视图函数以类的方式. 2.普通FBV形式 def index(request): return HttpResponse('in ...
随机推荐
- mac安装linux双系统的吐槽
[First day] 尝试安装mac - linux 双系统 首先,尝试的是ubuntu16.06版本,要把双系统安装至电脑硬盘512G SSD中, *** 分盘 1.1 打开实用工具中的磁盘管理工 ...
- Shopt命令(删除排除)
有时候我们需要反选某个文件以外的其他文件,就会用到rm -rf!(file)命令,但是有时候这条命令会报错显示 -bash: !: event not found 解决办法:shopt -s extg ...
- Hive学习笔记记录
典型数据来源: 文件管理服务: FTP文件服务:采用c/s模式,用户可以通过不同的客户端实现文件的上传与下载. NFS文件服务:借助于TCP/IP协议实现网络文件共享 Samba文件服务:是一种在局域 ...
- Linux 用户与组
在 Linux 操作系统下,如何添加一个新用户到一个特定的组中?如何同时将用户添加到多个组中?又如何将一个已存在的用户移动到某个组或者给他增加一个组?对于不常用 Linux 的人来讲,记忆 Linux ...
- jupyter notebook 代码自动补齐插件
安装: . pip install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple 2. jupyter ...
- freeswitch dialplan 基础
freeswitch dialplan 基础 一.基础概念 dialplan 拨号方案 context 拨号表(块) extension 拨号去向 action (拨号后执行的)动作 condit ...
- 安装IDEA的历程
安装IDEA的历程 写这篇博客的主要目的就是记录自己安装IDEA的"复杂"过程,顺便给一些需要帮助的人提供一些帮助,以及让他们可以少走一些弯路.之所以说"复杂" ...
- Polar Code(1)关于Polar Code
Polar Codes于2008年由土耳其毕尔肯大学Erdal Arikan教授首次提出,Polar Codes提出后各通信巨头都进行了研究.2016年11月18日(美国时间2016年11月17日), ...
- myhabits where in foreach
myhabits传入参数:类,其中类中包含字符串数组String[] 当查询where in String[]时 <select id="selectData" parame ...
- ThinkPHP3.2 --- 中文乱码问题
在thinkphp中初次运行时 会出现中文乱码问题,解决方法也很简单 只需要在入口文件index.php加上这段代码即可: <?php header("Content-Type: te ...