博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask框架从入门到精通之路由(三)
阅读量:6860 次
发布时间:2019-06-26

本文共 1768 字,大约阅读时间需要 5 分钟。

知识点: 1、路由 2、重定向 3、请求方式 4、PostMan使用

一、概况

说到路由,其实就是我们在浏览器输入地址后,后台进行匹配,如果匹配上,则执行此视图函数并返回内容。我们经过前面的例子也看出来Flask是用一个叫route()的装饰器进行装饰到视图函数上。 匹配的内容是去掉域名和端口后面地址,比如:http://127.0.0.1:8000/index这个地址,去掉域名和端口后就剩下/index这部分内容,所有我们只要装饰/index就可以了。

二、路由

我们来写一个首页视图和个人中心视图,并用路由装饰上。 提示:如果你没有设置DEBUG = True,请重新运行服务器 如下:

from flask import Flaskapp = Flask(__name__)@app.route('/')  # 代表首页def index():  # 视图函数    return 'my index !'  # 返回内容@app.route('/center')  # 代表个人中心页def center():  # 视图函数    return 'my flask!'  # 返回内容if __name__ == '__main__':    # 0.0.0.0代表任何能代表这台机器的地址都可以访问    app.run(host='0.0.0.0', port=5000)  # 运行程序复制代码

我们在浏览器上输入```http://127.0.0.1:5000/``,返回的内容是:

我们在浏览器上输入http://127.0.0.1:5000/center,返回的内容是:

三、重定向

重定向是网站比较常用的地址跳转,比如我们在网站登录后,需要重新跳转到首页,这个功能我们就可以用到重定向。在Flask中重定向需要用到下面模块:

from flask import redirect, url_for复制代码

redirect函数用于重定向。 url_for参数是视图函数函数的名字,它会根据视图函数的名字找到装饰次视图的路由。

from flask import Flaskfrom flask import abort, redirect, url_forapp = Flask(__name__)@app.route('/')  # 代表首页def index():  # 视图函数    return 'my index !'  # 返回内容@app.route('/center')  # 代表个人中心页def center():  # 视图函数    return 'my flask!'  # 返回内容@app.route('/login')  # 代表登录def login():  # 视图函数    return redirect(url_for('index'))if __name__ == '__main__':    # 0.0.0.0代表任何能代表这台机器的地址都可以访问    app.run(host='0.0.0.0', port=5000)  # 运行程序复制代码

我们在浏览器输入http://127.0.0.1:5000/login会发现重定向到了首页。在浏览器检查我们也可以看到:

四、请求方式

我们知道HTTP有很多的请求方式,每中请求方式都代表不同的意思。常用的请求方式有:

请求方式 含义
GET 获取资源
POST 新增资源
PUSH 更新资源
DELETE 删除资源
OPTIONS 询问支持的方法

我们登录功能都会采用POST方式做,我们现在的登录视图是GET请求,那么我们把登录视图改成支持POST

@app.route('/login',methods=['POST'])  # 代表登录复制代码

这个时候我在浏览器再访问一下:

这个错误的意思就是请求方式不允许,因为在浏览器地址输入的这种请求方式是
GET请求。不过我们可以借用
PostMan这样的工具模拟
POST请求。
还是可以看出来,它返回的是重定向到首页的内容。

欢迎关注我的公众号:

转载于:https://juejin.im/post/5cb98999f265da03841289b2

你可能感兴趣的文章
删除MySQL中冗余字段
查看>>
MS DOS 命令大全
查看>>
升级10.10 Yosemite 后,cocoapods 出现错误(解决方案)
查看>>
UEditor编辑器两个版本任意文件上传漏洞分析
查看>>
Redis分布式锁服务(八)
查看>>
MySQL的引入
查看>>
C++单例模式
查看>>
bower安装报错”Cannot be run with sudo”解决办法
查看>>
android平台中编写jni模块的方法(3)
查看>>
软件工程网络15结对编程1——四则运算优化
查看>>
进程、应用程序域,线程和上下文之间的关系
查看>>
Spring源码学习之一下载和导入
查看>>
13.使用第三方类实现动画
查看>>
H5在js中向指定的元素添加样式
查看>>
本地通知,UILocalNotification
查看>>
分页---总结
查看>>
前端开发的历史和趋势(转摘阮一峰)
查看>>
Ubuntu 削减非 LTS 支持周期
查看>>
_实用的cms企业后台管理模板
查看>>
菜鸟看Redis(一)
查看>>