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 ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
Django Rest framework之认证的实现代码
Dec 17 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
python使用rsa非对称加密过程解析
Dec 28 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
深入浅析python变量加逗号,的含义
Feb 22 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
Python SMTP发送电子邮件的示例
Sep 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
一个显示天气预报的程序
2006/10/09 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
thinkphp分页集成实例
2017/07/24 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
javascript函数库-集合框架
2007/04/27 Javascript
小型js框架veryide.librar源代码
2009/03/05 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
在Django中创建动态视图的教程
2015/07/15 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
Python实现简单的2048小游戏
2021/03/01 Python
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
后勤人员自我评价怎么写
2013/09/19 职场文书
家长对孩子的感言
2014/03/10 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
车贷收入证明范本
2014/09/14 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
党员年终个人总结
2015/02/14 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
2015年纪委工作总结
2015/05/13 职场文书
2016年校长新年寄语
2015/08/17 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
react中props 的使用及进行限制的方法
2021/04/28 Javascript
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技