2.2、路由和视图函数

客户端(例如 Web 浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL 到Python 函数的映射关系。处理 URL 和函数之间关系的程序称为路由。

在 Flask 程序中定义路由的最简便方式,是使用程序实例提供的 app.route 修饰器,把修饰的函数注册为路由。下面的例子说明了如何使用这个修饰器声明路由:

@app.route(‘/index‘)

def index():

return "<h1>Hello,World!</h1>"

注:修饰器是 Python 语言的标准特性,可以使用不同的方式修改函数的行为。惯常用法是使用修饰器把函数注册为事件的处理程序。

小技巧:使用Pycharm编辑器时根据上述情况,直接输入:route,选择”route   Flask route”会自动填充如下内容:(光标停留在def后面的括号前)

@app.route(‘/‘)
def ():
    pass

前例把 index() 函数注册为程序根地址的处理程序。如果部署程序的服务器域名为 www.example.com,在浏览器中访问 http://www.example.com 后,会触发服务器执行 index() 函数。这个函数的返回值称为响应,是客户端接收到的内容。如果客户端是 Web 浏览器,响应就是显示给用户查看的文档。像 index() 这样的函数称为视图函数(view function) 。视图函数返回的响应可以是包含HTML 的简单字符串,也可以是复杂的表单。

Flask 支持动态变量的URL,在route 修饰器中使用特殊的句法即可。下例定义的路由中就有一部分是动态名字:

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

def user(name):

return ‘<h1>Hello, %s!</h1>‘ % name

尖括号中的内容就是动态部分,任何能匹配静态部分的 URL 都会映射到这个路由上。调用视图函数时,Flask 会将动态部分作为参数传入函数。在这个视图函数中,参数用于生成针对个人的欢迎消息。

路由中的动态部分默认使用字符串,不过也可使用类型定义。例如,路由 /user/<int:id>

只会匹配动态片段 id 为整数的 URL。Flask 支持在路由中使用 int、float 和 path 类型。

path 类型也是字符串,但不把斜线视作分隔符,而将其当作动态片段的一部分。

时间: 2024-10-20 12:15:09

2.2、路由和视图函数的相关文章

wen应用/路由控制/视图函数/单表多表操作

一. 1.wen应用:BS架构的应用程序,B是浏览器,S:server(实现了wsgi协议)+ application https://www.cnblogs.com/liuqingzheng/articles/9523087.html  2.MVC和MTV(Django) M:Model和数据库打交道 V:模板 C:控制器 MTV:(MTV也是MVC架构) M:models和数据库打交道 T:Templates模板层,对到MVC是V这一层 V:视图,Views,路由+V  是MVC的C 二.路

Django路由配置系统、视图函数

URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. ''' urlpatterns = [ url(正则表达式, views视图函数,参数,别名),] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函数的默认参数(字典形式) 一个可选的name参数 ''' 1.UR

flask路由和视图和cookie

什么是路由 """ 客户端(例如web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例. 程序实例需要知道对每个URL请求运行那些代码,所以保存了一个URL到Python函数的映射关系. 处理URL和函数之间关系的程序称之为路由. """ 看个简单完整的的例子 #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask app = Flas

2Python全栈之路系列之Django路由与视图

Python全栈之路系列之Django路由与视图 路由说白了就是与视图(函数)的对应关系,怎么说呢,一个路由对应一个视图,比如上面文章中所提到的那样,当打开/users/路径的时候会让users这个函数来进行逻辑处理,把处理的结果再返回到前端. 那么django是怎么知道从哪里找路由的配置文件入口呢?其实这在settings.py文件中已经被定义了: ROOT_URLCONF = 'ansheng.urls' 路由的配置 绝对地址访问 # 访问地址必须是http://127.0.0.1:8000

laravel route路由,视图和response

Laravel充分利用PHP 5.3的特性,使路由变得简单并富于表达性.这使得从构建API到完整的web应用都变得尽可能容易.路由的实现代码在 application/routes.php 文件. 和其它框架不同,应用逻辑在Laravel中可以通过两种方式集成.虽然在控制器(controllers)中实现业务逻辑是普遍的做法,但是在Laravel中也可以直接在路由中嵌入应用逻辑.这种方式尤其适用于只有几个页面的小型网站,这样就免去了创建一大堆控制器(controllers),还要为每个控制器创建

(三)3 路由和试图函数

#路由其实就是将用户请求分发到哪个视图函数去处理.譬如,要做一个新闻的网站,网站主要包含首页.类别页面.详情页.我们可以做如下设计: #!/usr/bin/python #coding=utf-8 from flask import Flask app = Flask(__name__) @app.route("/") def index():     """ 新闻首页 """     return "<h1&

Flask 给视图函数增加装饰器

在@app.route的情况下增加装饰器的写法: 1 from flask import Flask,request,render_template,redirect,session,url_for,views 2 from flask import render_template 3 4 app = Flask(__name__) #实例化flask对象 5 app.debug = True #能够随时更改自动重启,不加的话每次更改代码需要手动重启 6 app.config['SECRET_K

Django - - - -视图层之视图函数(views)

阅读目录(Content) 视图层之视图函数(views) 一个简单的视图 1.HttpRequest 2.HttpResponse 1.render 函数 2.redirect 函数 对比render与redirect: 回到顶部(go to top) 视图层之视图函数(views) 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以.

Django之视图函数总结

Django之视图函数总结 HttpRequest与HttpResponse http请求中产生两个核心对象: HttpRequest对象:用户请求相关的所有信息(对象) HttpResponse对象:响应字符串 HttpRequest对象的属性和方法: request.path # 获取访问文件路径 request.method #获取请求中使用的HTTP方式(POST/GET) request.body #含所有请求体信息 是bytes类型 request.GET #GET请求的数据(类字典