W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Werkzeug 的設(shè)計(jì)意圖是一個(gè)實(shí)用的工具集而不是一個(gè)框架。得益于從低級API 中分離出來的面向用戶友好的 API,Werkzeug 可以很簡單的擴(kuò)展另一個(gè)系統(tǒng)。
Request 和 Response 對象(又名”wrappers”) 提供的函數(shù)也可以來實(shí)現(xiàn)一個(gè)小的功能。
這個(gè)例子實(shí)現(xiàn)一個(gè)小的 Hello World 應(yīng)用。顯示用戶輸入的名字:
from werkzeug.utils import escape
from werkzeug.wrappers import Request, Response
@Request.application
def hello_world(request):
result = ['<title>Greeter</title>']
if request.method == 'POST':
result.append('<h1>Hello %s!</h1>' % escape(request.form['name']))
result.append('''
<form action="" method="post">
<p>Name: <input type="text" name="name" size="20">
<input type="submit" value="Greet me">
</form>
''')
return Response(''.join(result), mimet ype='text/html')
另外不用 request 和 response 對象也可以實(shí)現(xiàn)這個(gè)功能,那就是借助 werkzeug 提供的解析函數(shù):
from werkzeug.formparser import parse_form_data
from werkzeug.utils import escape
def hello_world(environ, start_response):
result = ['<title>Greeter</title>']
if environ['REQUEST_METHOD'] == 'POST':
form = parse_form_data(environ)[1]
result.append('<h1>Hello %s!</h1>' % escape(form['name']))
result.append('''
<form action="" method="post">
<p>Name: <input type="text" name="name" size="20">
<input type="submit" value="Greet me">
</form>
''')
start_response('200 OK', [('Content-Type', 'text/html; charset=utf-8')])
return [''.join(result)]
通常我們更傾向于使用高級的 API(request 和 response 對象)。但是也有些情況你可能更想使用低級功能。
例如你想在不破壞 Django 或者其他框架的代碼的情況下解析 HTTP 頭信息。這時(shí)你可以利用 Werkzeug 調(diào)用低級 API 來解析 HTTP 頭部。
再比如,如果你想寫一個(gè) web 框架,或者做單元測試,或者 用 WSGI 中間件將一個(gè)老的CGI/mod_python 應(yīng)用改成 WSGI 應(yīng)用,并保證開銷。那么你可能更希望使用較低級的 API。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: