Bottlepy return 如果引发 HTTPResponse 输出,但引发模板时给出错误
Bottlepy return output if raise HTTPResponse, but give error when raise template
我有示例代码
from bottle import HTTPResponse, run, route, template
@route('/')
def hello_world():
raise HTTPResponse(body='test', status=200)
@route('/test')
def test():
raise template('<b>Hello {{name}}</b>!', name='World')
run(host='localhost', port=9999)
我知道,raise
不是 return 数据的正确方法。但是我已经准备好这段代码,需要使用它。
我想知道,当我 raise HTTPResponse
时它有效,但是当我尝试 raise template
时它给出错误。
我如何说服不要在应用程序中使用 raise
,但不确定我给出了什么论据来说服?
raise HTTPResponse
和return HTTPResponse
有什么区别?
raise
专门用于生成异常,因此,需要一个从 BaseException
class.
继承的对象
由于“HTTPResponse”和“不是来自任何类型的异常,因此它是非法操作并会产生错误。
基本上,raise
是为了异常,除非你打算触发错误来捕获或传递堆栈,否则不要使用它。
我有示例代码
from bottle import HTTPResponse, run, route, template
@route('/')
def hello_world():
raise HTTPResponse(body='test', status=200)
@route('/test')
def test():
raise template('<b>Hello {{name}}</b>!', name='World')
run(host='localhost', port=9999)
我知道,raise
不是 return 数据的正确方法。但是我已经准备好这段代码,需要使用它。
我想知道,当我 raise HTTPResponse
时它有效,但是当我尝试 raise template
时它给出错误。
我如何说服不要在应用程序中使用 raise
,但不确定我给出了什么论据来说服?
raise HTTPResponse
和return HTTPResponse
有什么区别?
raise
专门用于生成异常,因此,需要一个从 BaseException
class.
由于“HTTPResponse”和“不是来自任何类型的异常,因此它是非法操作并会产生错误。
基本上,raise
是为了异常,除非你打算触发错误来捕获或传递堆栈,否则不要使用它。