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实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
玩转python爬虫之爬取糗事百科段子
Feb 17 Python
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
Python随机读取文件实现实例
May 25 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
Python基于dom操作xml数据的方法示例
May 12 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
python打开音乐文件的实例方法
Jul 21 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
Django如何在不停机的情况下创建索引
Aug 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
php操作mysql数据库的基本类代码
2014/02/25 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
php实例化一个类的具体方法
2019/09/19 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
详细介绍Python的鸭子类型
2016/09/12 Python
Python 如何提高元组的可读性
2019/08/26 Python
python读取指定字节长度的文本方法
2019/08/27 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python实现加密的方式总结
2020/01/19 Python
python opencv如何实现图片绘制
2020/01/19 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
Python实现手势识别
2020/10/21 Python
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
物业门卫岗位职责
2013/12/28 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
车辆年检委托书范本
2014/10/14 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers