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的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
Python通过属性手段实现只允许调用一次的示例讲解
Apr 21 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
python计算无向图节点度的实例代码
Nov 22 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
python输出pdf文档的实例
Feb 13 Python
Python使用sqlite3模块内置数据库
May 07 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
Python可以用来做什么
Nov 23 Python
python开发制作好看的时钟效果
May 02 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
mayfish 数据入库验证代码
2010/04/30 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
文本框文本自动补全效果示例分享
2014/01/19 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python基于socket实现网络广播的方法
2015/04/29 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
办公室前台岗位职责范本
2013/12/10 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
宝宝周岁宴答谢词
2014/01/26 职场文书
助理政工师申报材料
2014/06/03 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
商铺租房协议书范本
2014/12/04 职场文书
个人总结怎么写
2015/02/26 职场文书
委托收款证明
2015/06/23 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
班主任寄语2016
2015/12/04 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers