8、Flask实战第8天:add_url_rule和app.route原理

之前我们使用@app.route这个装饰器来把视图函数和url绑定

@app.route(‘/‘)
def hell_world():
    return ‘hello world‘

而且我们可以通过url_for(‘hello_world‘)反转得到url ‘/‘

实际上我们可以给这个装饰器再加上endpoint参数,给这个url命名

@app.route(‘/‘, endpoint=‘index‘)
def hello_word():
    return ‘hello world‘

一旦我们使用了endpoint参数,在使用url_for()反转的时候就不能使用视图函数名了,而是要用我们定义的url名

url_for(‘index‘)

另外一种方式绑定视图函数和url,那就是add_url_rule

先在app = Flask(__name__)下面输入app.add_url_rule, 然后按住ctrl点击它查看源码

  rule:  设置url

  endpoint:  给url设置的名字

  view_func:  视图函数

因此,我们可以这样用

def my_list():
    return ‘my list‘

app.add_url_rule(rule=‘/list/‘, endpoint=‘list‘, view_func=my_list)

如果要使用url_for反转的话也是: url_for(‘list‘)

实际上,我们看@app.route这个装饰器的源码,也是用add_url_rule

原文地址:https://www.cnblogs.com/sellsa/p/9248170.html

时间: 2024-10-03 22:20:35

8、Flask实战第8天:add_url_rule和app.route原理的相关文章

二十二:视图之add_url_rule和app.route

flask注册视图有两种方式 一:add_url_rule()add_url_rule源码:rule:接口地址view_func=视图函数endpoint=终结点,可以理解为给当前视图取的别名,最直观的就是在url_for()的时候会用到,如果指定了endpoint,则在url_for()的时候,不能写视图函数名,只能写endpoint名 二:app.route() 其实route()底层也是调的add_url_rule(),源码: 由上可见,app.route()也是有endpoint参数的,

Flask实战第5天:页面跳转和重定向

GET和POST请求 在网络请求中有许多请求方式,比如GET, POST, DELETE, PUT等,最常用的就是GET和POST GET 只会在服务器上获取资源,不会更改服务器的状态,这种请求方式推荐使用GET GET请求把参数放到url中,通过'?xx=xxx'的形式传递 POST 给服务器提交一些数据或者文件,一般POST请求是会对服务器的状态产生影响 POST请求把参数放到Form Data中 在flask的route中默认使用的是get方法,用method参数来指定某个url能够使用的

Flask实战第6天:视图函数Response返回值

视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额外的数据,比如cookie.header信息等 rom flask import Flask from flask import make_response app=Flask(__name__) @app.route('/about/') def about(): return make_resp

flask实战-个人博客-使用类组织配置

使用类组织配置 在实际需求中,我们往往需要不同的配置组合.例如,开发用的配置,测试用的配置,生产环境用的配置.为了能方便地在这些配置中切换,你可以把配置文件升级为包,然后为这些使用场景分别创建不同的配置文件,但是最方便的做法是在单个配置文件中使用python类来组织多个不同类别的配置. 下面的代码是personalBlog的配置文件,现在它包含一个基本配置类(BaseConfig),还有其他特定的配置类,即测试配置类(TestingConfig).开发配置类(DevelopmentConfig)

第82课:Spark Streaming第一课:案例动手实战并在电光石火间理解其工作原理

本期内容: 1.Spark Streaming 动手实战演示 2.闪电般理解Spark Streaming原理 案例动手实战并在电光石火间理解其工作原理 流(Streaming),在大数据时代为数据流处理,就像水流一样,是数据流:既然是数据流处理,就会想到数据的流入.数据的加工.数据的流出. 日常工作.生活中数据来源很多不同的地方.例如:工业时代的汽车制造.监控设备.工业设备会产生很多源数据:信息时代的电商网站.日志服务器.社交网络.金融交易系统.黑客攻击.垃圾邮件.交通监控等:通信时代的手机.

第82讲:Spark Streaming第一讲:案例动手实战并在电光石火间理解其工作原理

本期内容: 1.Spark Streaming 动手实战演示 2.闪电般理解Spark Streaming原理 3.案例动手实战并在电光石火间理解其工作原理 流(Streaming),在大数据时代为数据流处理,就像水流一样,是数据流:既然是数据流处理,就会想到数据的流入.数据的加工.数据的流出. 日常工作.生活中数据来源很多不同的地方.例如:工业时代的汽车制造.监控设备.工业设备会产生很多源数据:信息时代的电商网站.日志服务器.社交网络.金融交易系统.黑客攻击.垃圾邮件.交通监控等:通信时代的手

Jetty实战之 嵌入式Jetty运行web app

Jetty实战之 嵌入式Jetty运行web app 博客分类: 应用服务器 jettywar 转载地址:http://blog.csdn.net/kongxx/article/details/7237034 要说嵌入式运行Jetty,最常用的还应该是运行一个标准的war文件或者指定一个webapp目录. 0. 首先需要添加Jetty运行时webapp的依赖包,下面是一个完整的pom.xml文件 写道 <project xmlns="http://maven.apache.org/POM/

12、Flask实战第12天:子域名

什么是子域名,我们的后台管理系统, 比如cms.heboan.com.配置子域名需要用到蓝图技术: 我现在buleprints下面创建一个cms.py 蓝图 from flask import Blueprint cms_bp = Blueprint('cms', __name__, subdomain='cms') @cms_bp.route('/') def index(): return 'cms page' 在主程序my_flask.py注册该蓝图 ... from blueprints

29、Flask实战第29天:cms用户名渲染和注销功能实现

这节来完成用户名渲染和注销的功能,目前用户名在前端页面是写死的,我们需要动态的展示出来 用户名渲染 实现用户名动态展示,其中一种方法就是在视图函数,根据session信息,获取到user id,通过该id找到用户信息,再通过模板变量传递到前端模板.但是这种方法不是很好.因为在其他视图肯定也会用到用户信息,这样的话每个视图函数都要有一个获取用户信息的过程,这样就显得冗余. 之前我们讲过flask中有一个g对象,这个g对象可以在整个flask项目中使用,其实在模板中也可以使用.有了这个g对象,那么我