1
2
3
4
5
6
7
8
9
|
from django.http import HttpResponse
def my_view(request):
if request.method == 'GET':
1. 填充逻辑
return HttpResponse('result')
if request.method == 'POST':
1. 填充逻辑
return HttpResponse('result')
|
# urls.py
from django.conf.urls import patterns
import .views as home_view
urlpatterns = patterns('',
(r'^my_view/', home_view.my_view)
)
|
from django.http import HttpResponse
from django.views.generic.base import View
class MyView(View):
def get(self, request):
1. 填充逻辑
return HttpResponse('result')
def post(self, request):
1. 填充逻辑
return HttpResponse('result')
|
# urls.py
from django.conf.urls import patterns
from .views import MyView
urlpatterns = patterns('',
(r'^about/', MyView.as_view()),
)
|
@classonlymethod
def as_view(cls, **initkwargs):
for key in initkwargs:
if key in cls.http_method_names:
raise TypeError("You tried to pass in the %s method name as a "
"keyword argument to %s(). Don't do that."
% (key, cls.__name__))
if not hasattr(cls, key):
raise TypeError("%s() received an invalid keyword %r. as_view "
"only accepts arguments that are already "
"attributes of the class." % (cls.__name__, key))
def view(request, *args, **kwargs):
self = cls(**initkwargs)
if hasattr(self, 'get') and not hasattr(self, 'head'):
self.head = self.get
self.request = request
self.args = args
self.kwargs = kwargs
return self.dispatch(request, *args, **kwargs)
update_wrapper(view, cls, updated=())
update_wrapper(view, cls.dispatch, assigned=())
return view
def dispatch(self, request, *args, **kwargs):
if request.method.lower() in self.http_method_names:
handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
return handler(request, *args, **kwargs)
|
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from django.views.generic.base import View
class MyView(View):
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(MyView, self).dispatch(*args, **kwargs)
|
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from django.views.generic.base import View
@method_decorator(login_required)
class MyView(View):
def dispatch(self, *args, **kwargs):
return super(MyView, self).dispatch(*args, **kwargs)
|
from django.contrib.auth.decorators import login_required, permission_required
from django.views.generic import TemplateView
from .views import VoteView
urlpatterns = [
url(r'^about/$', login_required(TemplateView.as_view(template_name="secret.html"))),
url(r'^vote/$', permission_required('polls.can_vote')(VoteView.as_view())),
]
|
相关推荐
在Go语言中,结构体(Struct)是一种自定义的数据类型,用于封装不同类型的数据字段。结构体可以看作是一种用户自定义的数据结构,用于组织和管理相关的数据。结构体由一组字段(Fields)组成,每个字段可以是不同的数据类型,可以是基本类型(如整数、浮点数、布尔值等)、复合类型(如数组、切片、映射等)、或者其他自定义的结构体类型。 Go语言结构体的基本特性 自定义数据类型:结构体是一种自定义的数据类
前言 本文首先对VictoriaMetrics的功能和架构进行介绍。接着,使用一个场景例子演示单集群VictoriaMetrics的安装,并验证其对Prometheus的兼容性和可替换性。 VictoriaMetrics简介 我们知道,若要保证一个系统的稳定运行,那么对于这个系统的监控是不可或缺的环节。当今在云原生领域中,Prometheus作为已经毕业的CNCF项目,已经成为了非常主流的监控和报
作者:聪言 开篇:一次小小的技术讨论 周末的时候,和一位在国内某互联网公司负责运维的朋友聊天,由于工作相关,刚好聊到了公司项目中微服务架构这块的一些问题,他们公司的微服务架构使用的是业界比较常用的 Spring Cloud Netflix 那一套作为底座,有专门的同学负责运维一套自建的 Eureka 集群来作为微服务注册中心。服务注册中心作为微服务领域的核心组件,承载着公司核心业务的高频服务,一旦
编者按 本博客将向您介绍零信任网络及其基本要素,这是 CISO(首席信息安全官)必须考虑的,以使网络强大,在当今的数字转型中没有安全漏洞,并减少潜在的财务损失。 当今所有主要组织都在经历大规模的数字化转型,采用云、移动、微服务和容器技术来高效地提供服务,满足关键业务需求,赶上市场预期。企业的平台和 DevOps 团队必须对分布式和多云的应用程序和服务进行建模,以便随时随地进行访问,从而实现敏捷性。
使用 Rainbond 作为智慧城市底座之后,给我们带来了成倍的运维效率提升。 —— 咸阳市大数据管理局 熊礼智 咸阳市大数据管理局负责全市信息共享工作的组织领导,协调解决与政府信息共享有关的重大问题,研究拟订并组织实施全市大数据战略、规划和政策措施,引导和推动大数据研究和应用工作,建立全市统一的数据服务中心和信息共享机制。通过“端-边-网-云-智” 的全新技术架构,实现管理高效、服务便民、产业发
回到顶部