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的Django框架中的表单处理示例
Jul 17 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
Python数据操作方法封装类实例
Jun 23 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
pytorch构建网络模型的4种方法
Apr 13 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
python和opencv实现抠图
Jul 18 Python
python实现简单的文字识别
Nov 27 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
又一个小巧的图片预加载类
2007/05/05 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
Javascript Objects详解
2014/09/04 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
P/Invoke是什么
2015/07/31 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
采购部主管岗位职责
2014/01/01 职场文书
计算机应用专业自荐信
2014/07/05 职场文书