[python]pyramid 学习4 (views)

Defining a View Callable as a Function

from pyramid.response import Response

def hello_world(request):
return Response('Hello world!')

 

Defining a View Callable as a Class

from pyramid.response import Response

class MyView(object):
def __init__(self, request):
self.request = request

def __call__(self):
return Response('hello')

 

HTTP异常 (pyramid.httpexceptions)

抛出401的第一种方法 

from pyramid.httpexceptions import HTTPUnauthorized

def aview(request):
raise HTTPUnauthorized()

抛出401的第二种方法

from pyramid.httpexceptions import exception_response

def aview(request):
raise exception_response(401)
403
pyramid.httpexceptions.HTTPForbidden.

404
pyramid.httpexceptions.HTTPNotFound

自定义异常

class ValidationFailure(Exception):
def __init__(self, msg):
self.msg = msg

from pyramid.view import view_config
from helloworld.exceptions import ValidationFailure

@view_config(context=ValidationFailure)
def failed_validation(exc, request):
response = Response('Failed validation: %s' % exc.msg)
response.status_int = 500
return response

 

header重定向

from pyramid.httpexceptions import HTTPFound

def myview(request):
return HTTPFound(location='http://example.com')

 

获取POST数据

def myview(request):
firstname = request.params['firstname']
lastname = request.params['lastname']

def myview(request):
# the .decode('utf-8') will break below if there are any high-order
# characters in the firstname or lastname
firstname = request.params['firstname'].decode('utf-8')
lastname = request.params['lastname'].decode('utf-8')

 

复习一下 route中获取数据(GET)

request.matchdict['xxxx']

 

原文地址:https://www.cnblogs.com/bluefrog/p/2219739.html