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函数返回多个值的示例方法
Dec 04 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
Python进程间通信用法实例
Jun 04 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
python可视化大屏库big_screen示例详解
Nov 23 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模板函数 正则实现代码
2012/10/15 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
php处理带有中文URL的方法
2016/07/11 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
jquery制作多功能轮播图插件
2015/04/02 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
vue-cli入门之项目结构分析
2017/04/20 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
Python requests模块cookie实例解析
2020/04/14 Python
python属于软件吗
2020/06/18 Python
python之语音识别speech模块
2020/09/09 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Ajxa常见问题都有哪些
2014/03/26 面试题
主题酒店策划书
2014/01/28 职场文书
三方合作协议书范本
2014/04/18 职场文书
大专生找工作自荐书
2014/06/10 职场文书
信用卡收入证明范本
2015/06/12 职场文书
结婚司仪主持词
2015/06/29 职场文书