Python Flask 简明教程(7)--路由使用方法详解

简介: 本文目录1. 概述2. 简单路由3. 处理HTTP方法4. 绑定多个URL5. URL参数6. 动态URL7. 小结

1. 概述

路由其实就是URL和Python函数的映射关系,说的再明白点,就是客户端请求哪个路径交给哪个函数处理的问题。


通过给函数添加装饰器@app.route,即可定义路由,装饰器的参数即为对应的URL。


2. 简单路由

编写route.py,代码如下:


from flask import Flask

app = Flask(__name__)


@app.route('/hello')

def hello():

   return 'hello'


if __name__ == '__main__':

   app.run(debug=True)

1

2

3

4

5

6

7

8

9

启动项目后,访问http://127.0.0.1:5000/hello,由于该访问地址URL匹配'/hello',所以将被hello()函数处理。


所以访问该页面结果如下:



3. 处理HTTP方法

默认情况下,路由只能响应GET方法,可以通过装饰器的methods参数设定路由能响应的方法。


例如我们想同时响应GET/POST方法,则代码如下:


@app.route('/hello', methods=['GET', 'POST'])

def hello():

   return 'hello'

1

2

3

4. 绑定多个URL

一个函数可以绑定多个URL,只需要为该函数添加多个装饰器即可,如下函数可以处理三种URL请求。


@app.route('/')

@app.route('/home')

@app.route('/index')

def home():

  return 'home page'


5. URL参数

有时候,我们希望接受URL上附带的参数,此时可以通过在装饰器上添加<xxx>格式的内容,来对应URL传递的参数。


例如:


@app.route('/user/<name>')

def userInfo(name):

   return 'your name is %s' % name


此时我们通过http://127.0.0.1/user/chen访问,则chen匹配到了<name>,然后会自动传递给函数的参数name,所以网页运行如下:



6. 动态URL

除了直接使用装饰器匹配URL进行路由,还可以通过代码进行动态控制。


通过redirect()函数即可动态控制路由。


如下例子,如果我们访问/dynamic,则会自动跳转到userInfo函数去处理,且携带参数wang。


@app.route('/dynamic')

def dynamic():

   return redirect(url_for('userInfo', name="wang"))

 

@app.route('/user/<name>')

def userInfo(name):

   return 'your name is %s' % name


解释下,首先我们访问/dynamic,然后通过url_for解析出了跳转到userInfo且携带参数wang的地址为/user/wang,然后通过redirect函数自动重定向到/user/wang。


所以效果如下,注意地址栏已经自动重定向到/user/wang



7. 小结

Flask路由的功能还是比较灵活丰富的。

相关文章
|
10天前
|
Linux 网络安全 Python
linux centos上安装python3.11.x详细完整教程
这篇文章提供了在CentOS系统上安装Python 3.11.x版本的详细步骤,包括下载、解压、安装依赖、编译配置、解决常见错误以及版本验证。
80 1
linux centos上安装python3.11.x详细完整教程
|
7天前
|
JSON 测试技术 数据库
|
9天前
|
Python Windows
python入门保姆级教程 | 13
python入门保姆级教程 | 13
|
9天前
|
Python
python flask跨域处理
python flask跨域处理
22 1
|
11天前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
36 3
|
13天前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
43 3
|
18天前
|
JSON 测试技术 数据库
Python的Flask框架
Python的Flask框架
|
16天前
|
Java Python
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
【9月更文挑战第18天】在 Python 中,虽无明确的 `interface` 关键字,但可通过约定实现类似功能。接口主要规定了需实现的方法,不提供具体实现。抽象基类(ABC)则通过 `@abstractmethod` 装饰器定义抽象方法,子类必须实现这些方法。使用抽象基类可使继承结构更清晰、规范,并确保子类遵循指定的方法实现。然而,其使用应根据实际需求决定,避免过度设计导致代码复杂。
|
13天前
|
网络协议 开发者 Python
网络编程小白秒变大咖!Python Socket基础与进阶教程,轻松上手无压力!
在网络技术飞速发展的今天,掌握网络编程已成为开发者的重要技能。本文以Python为工具,带你从Socket编程基础逐步深入至进阶领域。首先介绍Socket的概念及TCP/UDP协议,接着演示如何用Python创建、绑定、监听Socket,实现数据收发;最后通过构建简单的聊天服务器,巩固所学知识。让初学者也能迅速上手,成为网络编程高手。
49 1
|
18天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
下一篇
无影云桌面