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 相关文章推荐
Python迭代用法实例教程
Sep 08 Python
Python中asyncore的用法实例
Sep 29 Python
详解Python中的strftime()方法的使用
May 22 Python
浅析Python中else语句块的使用技巧
Jun 16 Python
Python 基础教程之包和类的用法
Feb 23 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
Python GUI学习之登录系统界面篇
Aug 21 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
Python matplotlib实时画图案例
Apr 23 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP调用三种数据库的方法(1)
2006/10/09 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
php curl基本操作详解
2013/07/23 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
javascript使用prototype完成单继承
2014/12/24 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
毕业生在校学习的自我评价分享
2013/10/08 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
毕业证丢失证明
2014/01/15 职场文书
写求职信有什么意义
2014/02/17 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
贷款担保书范文
2014/05/13 职场文书
法院授权委托书格式
2014/09/28 职场文书
材料员岗位职责
2015/02/10 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
如何写观后感
2015/06/19 职场文书
公司员工管理制度
2015/08/04 职场文书