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 ...
随机推荐
- python框架django-web层
1.demo 命令行:django-admin startproject HelloWorld 命令执行成功后会根据模版生产一个django项目 然后通过 命令:python3 manage.py r ...
- Oracle 正则
https://www.cnblogs.com/qmfsun/p/4467904.html 匹配汉字可以用Oracle 内置函数 unistr('\4e00') -unistr('\9fa5') 来定 ...
- Post提交带参网址
前端 $(function(){ var obj=$('#form1'); obj.validate({ submitHandler: function (form){ var data={}; da ...
- flask 需要下载的包
Flask 需要下载的包1.pip install flask2.pip install flask-script3.pip install flask-sqlalchemy4.pip install ...
- Python学习—基础篇之常用模块
常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
- java第三章多态
多态: 多态不仅可以减少代码量,还可以提高代码的扩展和可维护性 (通过一个方法可以对所有所需方法一个运用)多态具体表现多种形态能力的特征,同一个实现接口使用不同实例而执行不同的操作 实现多态的三个条件 ...
- OpenTSDB/HBase的调优过程整理
背景 过年前,寂寞哥给我三台机器,说搞个新的openTSDB集群.机器硬件是8核16G内存.3个146G磁盘做数据盘. 我说这太抠了,寂寞哥说之前的TSDB集群运行了两年,4台同样配置的机器,目前hd ...
- hbase基础建表语句
在Hadoop目录下的HBASE下执行命令 ./hbase shell 进入hbase环境 创建hbase 数据库表 create "表名", "字段A",&q ...
- python 从大到小排序
a = [3,7,4,9]a = sorted(a,reverse=True)print(a)#[9, 7, 4, 3]
- PHP+Mysql 实现数据库增删改查(原生)
Mysql数据库创建 创建一个新闻列表的数据库: 1. 查询数据库 1.1. 创建文件dbconfig.php,保存常量 <?php define("HOST"," ...