前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask路由基础

Flask路由基础

作者头像
DearXuan
发布2022-02-25 10:11:45
2870
发布2022-02-25 10:11:45
举报
文章被收录于专栏:DearXuan的博客文章

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中的变量会被直接替换为对应的字符串,且会被自动转义

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flask路由
  • Flask示例
  • Flask路由
  • 模板
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档