📜  烧瓶文档 - Python (1)

📅  最后修改于: 2023-12-03 15:40:48.644000             🧑  作者: Mango

烧瓶文档 - Python

烧瓶(Bottle)是一个轻量级的Python Web框架,它使用简单,但却功能强大。它可以被认为是Flask的竞争者,但比Flask更加简洁。

安装

您可以使用pip安装烧瓶框架:

pip install bottle
使用
Hello World

下面是一个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应用程序。