📅  最后修改于: 2023-12-03 15:40:48.644000             🧑  作者: Mango
烧瓶(Bottle)是一个轻量级的Python Web框架,它使用简单,但却功能强大。它可以被认为是Flask的竞争者,但比Flask更加简洁。
您可以使用pip安装烧瓶框架:
pip install bottle
下面是一个Hello World程序:
from bottle import route, run
@route('/')
def hello_world():
return 'Hello World!'
run(host='localhost', port=8080)
在浏览器中打开http://localhost:8080
即可看到"Hello World!"。
烧瓶使用装饰器对请求URL进行路由。例如,我们可以使用/hello/<name>
匹配以/hello开头的URL,其中<name>
是一个占位符,可以匹配任何非空字符串:
from bottle import route, run
@route('/hello/<name>')
def hello(name):
return f'Hello, {name}!'
run(host='localhost', port=8080)
默认情况下,路由处理程序将处理所有HTTP请求(GET、POST、PUT等)。但如果我们只想处理特定的请求方法,则可以使用相应的装饰器:
from bottle import route, run, post
@route('/login')
def login():
return '''
<form action="/login" method="post">
Username: <input name="username" type="text" />
Password: <input name="password" type="password" />
<input value="Login" type="submit" />
</form>
'''
@post('/login')
def do_login():
username = request.forms.get('username')
password = request.forms.get('password')
return f'Username: {username}, Password: {password}'
run(host='localhost', port=8080)
烧瓶支持使用各种模板引擎,包括Python自带的字符串格式化和Jinja2。以下是一个使用Jinja2模板的例子:
from bottle import route, run, template
@route('/hello/<name>')
def hello(name):
return template('hello_template', name=name)
run(host='localhost', port=8080)
在这个例子中,我们使用了一个名为hello_template.tpl
的Jinja2模板:
<!doctype html>
<html>
<head>
<title>Hello {{name}}</title>
</head>
<body>
<h1>Hello {{name}}!</h1>
</body>
</html>
使用该模板,我们可以根据URL参数来动态生成HTML输出。
烧瓶是一个简单易用、功能强大的Python Web框架。它使用装饰器进行路由和请求方法处理,支持多种模板引擎,可以轻松地构建Web应用程序。