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 Tkinter简单布局实例教程
Sep 03 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
详解tensorflow载入数据的三种方式
Apr 24 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
Python中的tkinter库简单案例详解
Jan 22 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入门速成(2)
2006/10/09 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
python基本语法练习实例
2017/09/19 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python函数参数操作详解
2018/08/03 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
Python学习笔记之装饰器
2020/08/06 Python
python pillow库的基础使用教程
2021/01/13 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
魅力教师事迹材料
2014/01/10 职场文书
产品包装策划方案
2014/05/18 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js