当前位置: 首页 > news >正文

网站建设歺金手指排名13深圳做网站多钱

网站建设歺金手指排名13,深圳做网站多钱,自豪地采用wordpress怎么去掉,找人做网页需要多少钱类视图 思考:一个视图,是否可以处理两种逻辑?比如get和post请求逻辑。 如何在一个视图中处理get和post请求 注册视图处理get和post请求 以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供…

类视图

思考:一个视图,是否可以处理两种逻辑?比如get和post请求逻辑。

如何在一个视图中处理get和post请求

 

 

注册视图处理get和post请求

以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。

def register(request):"""处理注册"""# 获取请求方法,判断是GET/POST请求if request.method == 'GET':# 处理GET请求,返回注册页面return render(request, 'register.html')else:# 处理POST请求,实现注册逻辑return HttpResponse('这里实现注册逻辑')

类视图的多继承重写dispatch

class CenterView(View):def get(self,request):return HttpResponse("OK")def post(self,request):return HttpResponse("OK")

使用面向对象多继承的特性。

class CenterView(LoginRequireMixin,View):def get(self,request):return HttpResponse("OK")def post(self,request):return HttpResponse("OK")

 

中间件

Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。

我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。

中间件文档

1 中间件的定义方法

定义一个中间件工厂函数,然后返回一个可以被调用的中间件。

中间件工厂函数需要接收一个可以调用的get_response对象。

返回的中间件也是一个可以被调用的对象,并且像视图一样需要接收一个request对象参数,返回一个response对象。

def simple_middleware(get_response):# 此处编写的代码仅在Django第一次配置和初始化的时候执行一次。def middleware(request):# 此处编写的代码会在每个请求处理视图前被调用。response = get_response(request)# 此处编写的代码会在每个请求处理视图之后被调用。return responsereturn middleware

例如,在book应用中新建一个middleware.py文件,

def my_middleware(get_response):print('init 被调用')def middleware(request):print('before request 被调用')response = get_response(request)print('after response 被调用')return responsereturn middleware

定义好中间件后,需要在settings.py 文件中添加注册中间件

MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','book.middleware.my_middleware',  # 添加中间件
]

定义一个视图进行测试

def middleware(request):print('view 视图被调用')return HttpResponse('OK')

执行结果

 

 

注意:Django运行在调试模式下,中间件init部分有可能被调用两次。

2 多个中间件的执行顺序

  • 在请求视图被处理,中间件由上至下依次执行
  • 在请求视图被处理,中间件由下至上依次执 

 

 

示例:

定义两个中间件

def my_middleware(get_response):print('init 被调用')def middleware(request):print('before request 被调用')response = get_response(request)print('after response 被调用')return responsereturn middlewaredef my_middleware2(get_response):print('init2 被调用')def middleware(request):print('before request 2 被调用')response = get_response(request)print('after response 2 被调用')return responsereturn middleware

注册添加两个中间件

MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','users.middleware.my_middleware',  # 添加'users.middleware.my_middleware2',  # 添加
]

执行结果

init2 被调用
init 被调用
before request 被调用
before request 2 被调用
view 视图被调用
after response 2 被调用
after response 被调用

 

http://www.yayakq.cn/news/336236/

相关文章:

  • 保山公司网站建设如何扫描一个网站的漏洞
  • 糗百网站开发做网站没有成本的方法
  • 专业北京网站建设公司哪家好佛系汉化 wordpress
  • 贵州省城乡和住房建设厅官方网站网页制作哪家质量好
  • 网站栏目名称大全东营人力资源招聘信息网
  • 哈尔滨如何免费制作网站官方网站下载12306
  • 怎样做网站排名优化网站备案申请书
  • 在线表情包制作网站拉丝机东莞网站建设
  • 嘉兴自助建网站购物 网站建设的市场分析
  • 超人气网站是这样建成的软件技术升本可以升什么专业
  • 有关网站建设的图片网站建设花销
  • 车陂手机网站建设报价深圳市建筑工程股份有限公司
  • 全网影视vip网站建设国内百度云网站建设
  • 响应式网站应该怎么做目前做网站
  • cms做网站不用后端网站建设服务非常好湖南岚鸿公司
  • 学校门户网站是什么意思西乡塘区网站建设
  • 社交网站 cms网站建设盒子怎么搭建
  • 做标签这个网站刷单安全吗怎么优化整站
  • 厦门专业网站建设百度推广图片尺寸要求
  • 萧江做网站建筑学专业大学世界排名
  • wordpress 整站打包ui设计是什么职位
  • wamp网站开发视频教程做寄生虫对自己的网站有影响吗
  • 网站排名优化工具怎样更新网站文章
  • 网站游戏怎么制作蜜桃传播18媒体免费观看
  • 网站建设 网页设计 的文章网站建设工作室小俊哥
  • 做教育集团的网站微信团购群网站怎样做
  • 网站获得流量最好的方法是什么 ( )网站刷流量有什么用
  • 赵公口网站建设北京网站设计wordpress 百度 插件怎么用
  • 国家pccm建设申报网站南华大学城市建设学院网站
  • 网站地址怎么做超链接苏州做网站公司