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 ...
随机推荐
- Servlet学习记录3
提交表单信息 Web程序的任务是实现服务器与客户端浏览器之间的信息交互.客户端提交的信息可能来自表单里的文本框,密码框,选择框,单选按钮,复选框以及文件域.这些表单信息被以参数形式提交到了服务器.Se ...
- 【Debug】串口发送数据时部分字节被拉长,出现帧错误,原因MCU进入低功耗模式导致串口时钟停了!
串口发送数据时部分字节被拉长,出现帧错误,原因MCU进入低功耗模式导致串口时钟停了!
- jquery遍历----end()方法
定义和用法 end() 方法结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态. 举个栗子: <body> <ul class="first"> ...
- mysql主从脚本
#!/bin/bash #auto make install mysql AB Replication #by author ale #-- :: MYSQL_SOFT="mariadb m ...
- select 选择列表传值问题
<select> <option value ="volvo">Volvo</option> <option value ="s ...
- tensorflow 查看模型输入输出saved_model_cli show --dir ./xxxx --all
saved_model_cli show --dir ./xxxxxxxx --all 可以查看模型的输入输出,比如使用tensorflow export_model_inference.py 输出的 ...
- day 09
内存管理 引用计数:垃圾回收机制的依据 当变量的值被引用的时,变量值的引用计数+1,当变量名被解除绑定时该值的引用计数减少一. 当引用计数变成0的时候会被垃圾回收机制回收. 引用计数会出现循环引用问题 ...
- 微信小程序-遍历列表
#index.js data: { "messg":"helloworld1111", "items":[ {"name" ...
- linux 安装java环境
1.检查是否安装或者linux系统自带jdK 命令:java -version 查找JDK相关包是否被安装: rpm -qa |grep jdk rpm -qa |grep gcj 删除JDK相关包: ...
- sv函数中返回队列
如果想从函数中,返回队列或者动态数组,我们应该怎么做呢? 答案就是自己用typedef定义一个类型. typedef int queue_of_int[$]; function queue_of_in ...