flask框架视图函数用法示例


Posted in Python onJuly 19, 2018

本文实例讲述了flask框架视图函数用法。分享给大家供大家参考,具体如下:

flask框架 视图函数当中 各种实用情况简单配置

1 建立连接

2 路由参数

3 返回网络状态码

4 自定义错误页面

5 重定向

6 正则url限制 和 url 优化

7 设置和获取cookie

#coding:utf8
# 导入flask
from flask import Flask,abort,redirect,make_response,request
from werkzeug.routing import BaseConverter
# Flask 接受一个参数__name__ 作用是指明应用的位置
app = Flask(__name__)
'''
1 建立一个前后台链接
装饰器的作用是陆游映射到视图函数index
访问根目录就会进入index视图函数
'''
@app.route('/')
def index():
  # 返回后会调用make_response
  return "你好 世界!"
'''
2 给路由传参数
传递的参数在<name>当中 这个变量名称也要传递给视图函数
可以在<int:name> 或者<string:name> 指定传递参数的类型
不指定类型默认使用string类型
'''
@app.route('/attr/<string:attr>')
def attr(attr):
  return "hello,%s"%attr
'''
3 返回网络状态码的两种方式
  01 return 字符串,状态码
  02 abort(状态码)
200 成功
300 重定向
404 未找到
500 服务器内部错误
'''
#01 return 字符串,状态码 这种方式 可以返回不存在的状态码 前端依然能得到页面
@app.route('/status')
def status():
  # 用这种方式可以返回假的状态码 前端依然能够渲染
  return 'hello status',999
#02 利用abort(状态码) 进行返回状态码,只能写入真的状态码
# 这个函数的作用是 自定义我们项目的 出错页面
@app.route('/abort')
def geive500():
  abort(500)
'''
4 捕获访问我们flask后台发生各种错误的情况
  利用@app.errorhandler(500) 进行装饰 能截获500的response
'''
# 捕获500异常 函数当中接受到错误信息
@app.errorhandler(500)
def error500(e):
  return "您请求的页面后台发生错误!错误信息:%s"%e
@app.errorhandler(404)
def error404(e):
  return "您访问的页面飞去了火星!信息:%s"%e
'''
5 重定向
有两种方式:
  01 redirect(url)
  02 url_for(视图函数)
'''
@app.route('/redirect')
def redir():
  return redirect('http://www.baidu.com')
'''
6 url正则
两个用途: 限制访问 和 优化访问路径
使用:
01首先要 定义一个继承自BaseConverter的子类
  在子类里面调用父类的初始化方法
  重写父类的变量
02然后 给applurl_map.converters 字典添加re健 和 我们自己写的类做val
03最后 视图函数的app.route('路径<re(正则),变量名>')   
  变量名要传给视图函数做参数
'''
# 01 写一个继承自 BaseConverter的子类 相应的方法和属性要重写
class Regex_url(BaseConverter):
  def __init__(self,url_map,*args):
    super(Regex_url,self).__init__(url_map)
    self.regex = args[0]
# 02 添加re映射
app.url_map.converters['re'] = Regex_url
# 03 正则匹配参数
# 利用正则对传入参数进行限制
# 只有1到3位小写英文才能成功 否则都是404
@app.route('/attr2/<re("[a-z]{1,3}"):attr>')
def attr2(attr):
  return "hello %s"%attr
'''
7 设置cookie 和 获取 cookie
设置cookie:
  利用 make_response() 拿到response对象
  response.set_cookie(key,val)
获取cookie:
  利用request.cookies.get(key) 获取cookie
'''
# 设置cookie
@app.route('/set_cookie')
def setCookie():
  response = make_response('设置cookie')
  response.set_cookie('log','设置的cookie')
  return response
# 获取cookie
@app.route('/get_cookie')
def getCookie():
  log = request.cookies.get('log')
  return log
if __name__ == '__main__':
  # 执行后台服务器
  app.run(debug=True)

更多关于Python相关内容可查看本站专题:《Python入门与进阶经典教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
pymongo为mongodb数据库添加索引的方法
May 11 Python
Python实现的rsa加密算法详解
Jan 24 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
浅析python redis的连接及相关操作
Nov 07 Python
Python实现元素等待代码实例
Nov 11 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
Django项目如何正确配置日志(logging)
Apr 29 Python
Python中的单行、多行、中文注释方法
Jul 19 #Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 #Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 #Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 #Python
python3基于OpenCV实现证件照背景替换
Jul 18 #Python
python和opencv实现抠图
Jul 18 #Python
Python错误处理操作示例
Jul 18 #Python
You might like
PHP执行速率优化技巧小结
2008/03/15 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
jquery 锁定弹出层实现代码
2010/02/23 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
linux安装Python3.4.2的操作方法
2018/09/28 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
数控技术与应用毕业生自荐信
2013/09/24 职场文书
个人承诺书
2014/03/26 职场文书
工资收入证明
2014/10/07 职场文书
2014年派出所工作总结
2014/11/21 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
在redisCluster中模糊获取key方式
2021/07/09 Redis
如何Python使用re模块实现okenizer
2022/04/30 Python