Flask路由基础

2022-02-25 10:11:45 浏览数 (1)

Flask路由

Flask是较为热门的用python编写的Web应用框架,它能够根据路由自动将请求分配给对应的函数,使得程序员能够专注于功能,而不是繁琐的底层协议

Flask示例

下面的代码创建了一个Flask应用,并返回一个欢迎页面

代码语言:javascript复制
from flask import Flask, render_template
app = Flask(__name__)
 
@app.route('/')
def main_web():
    return 'hello world'
 
if __name__ == '__main__':
    app.run(host="127.0.0.1",port=8080)

Flask路由

Flask会自动将不同的路由解析到对应的函数,你需要使用route()装饰器来绑定路由和函数

下面的代码将根目录绑定至 main() 函数

代码语言:javascript复制
@app.route('/')
def main():
    return 'hello world'

只要稍微修改以下装饰器,就可以把 “/main” 路由绑定至 main() 函数

代码语言:javascript复制
@app.route('/main')
def main():
    return 'hello world'

路由中可以加入变量,以便于将具体路由以参数形式传递到绑定的函数中

例如下面的代码,如果访问 “localhost:8080/hello”,则变量 name == “hello”

代码语言:javascript复制
@app.route('/<name>')
def main1(name):
    return name

你也可以指定参数类型,例如整型

代码语言:javascript复制
@app.route('/<int:id>')
def main1(id):
    return str(id)

如果路由为 “localhost:8080/abc”,则Flask会跳过该函数,寻找下一个匹配的路由

使用字典可以方便地传入多个参数

代码语言:javascript复制
@app.route('/<name>/<int:id>')
def main(**dic):
    return '''
name= %s<br/>
id  = %d
''' % (dic['name'], dic['id'])

模板

在项目根目录下创建 template 文件夹,并添加一个 index.html文件

在代码中使用模板

代码语言:javascript复制
@app.route("/")
def index():
    return render_template("index.html")

在模板中使用大括号可以标注一个变量,并在函数中传入该变量

代码语言:javascript复制
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Template</title>
</head>
<body>
{{ value }}
</body>
</html>
代码语言:javascript复制
@app.route("/")
def index():
    return render_template("index.html",value="dearxuan")

html中的变量会被直接替换为对应的字符串,且会被自动转义

0 人点赞