Flask学习笔记之url_for与重定向

大纲

前文中我们讲到,url(路由)和函数视图的映射关系,也就是通过对应的url,可以返回对应的视图函数。当然我们通过视图函数也能找到对应的url路径,这可以通过url_for来完成。接着我们讲解重定向的知识点。

  • url_for
  • 重定向

url_for

首先,我们说说url_for的意义,大家在浏览网页的时候都会有跳转,假设我们写跳转的时候,用url路径,当整个网站路径需要修改时,就需要更改这些代码,如果我们使用的是url_for的话,修改量就很少(通常视图函数是不修改的)。 接着,我们看看url_for的使用:

@app.route('/post/list/<page>/')
def my_list(page):
    return 'my list'

print(url_for('my_list',page=1,count=2))
# 构建出来的url:/my_list/1/?count=2

重定向

重定向分为永久性重定向和暂时性重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。 具体操作如下:

from flask import Flask,request,redirect,url_for

app = Flask(__name__)

@app.route('/login/')
def login():
    return '这是登录页面'

@app.route('/profile/')
def profile():
    if request.args.get('name'):
        return '个人中心页面'
    else:
        # redirect 重定向
        return redirect(url_for('login'))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

使用MagicAjax 实现无刷新Webparts

介绍MagicAjax Web.config的配置如下: <?xml version="1.0"?> <configuration> <configSecti...

20910
来自专栏web编程技术分享

【PHP快速入门】 第一节 php开发环境的配置

这是一个简单,而且免费的PHP教程。 第一节,说一说如何安装PHP的开发环境。为了方便起见,可以直接安装xampp即可。 首先,去百度上搜索xampp,随便...

813
来自专栏向治洪

Jar mismatch! Fix your dependencies

  在开发Android项目的时候,有时需要引用多个项目作为library。在引用项目的时候,有时会出现“Jar mismatch! Fix your depe...

1948
来自专栏博客园迁移

一次服务器磁盘空间不足导致的一系列问题

  继昨天服务器上应用 CPU占用过高 后面该应用宕掉了以后      java 一次CPU占用过高问题的排查及解决

2243
来自专栏WebDeveloper

git使用

1、git init 初始化仓库 2、 git status 查看仓库各文件的状态信息 3、撤销commit的文件 git log显示commit日志

1142
来自专栏Python攻城狮

GitHub 系列之「向GitHub 提交代码」1.SSH2.生成SSH key3.GitHub 上添加 SSH key4.Push & Pull5.提交代码

你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提...

712
来自专栏云知识学习

Windows2008 MSFTP 使用教程

对于最里层的wwwroot:右键-->属性-->安全-->设置用户web的权限(具有读取和写入权限,选择‘高级’,选中特殊权限的web用户-->编辑权限-->选...

37711
来自专栏面朝大海春暖花开

springMVC+freemarker实现自定义标签

强烈建议2.3.20或其以上版本,注意还需要引入spring-context-support

962
来自专栏进击的君君的前端之路

域名、网站名、URL

1625
来自专栏主机笔记

安装serverstatus监控多台服务器状态

如果是一台服务器很好管理,但是服务器多了,就很容易忘记,因此就需要一个监控的平台。serverstatus是一个开源的服务器监控系统,可以利用serversta...

7097

扫码关注云+社区