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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
Python验证码识别处理实例
Dec 28 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
Python装饰器用法实例总结
May 26 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python3.7 sys模块的具体使用
Jul 22 Python
如何基于Python实现数字类型转换
Feb 07 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
Django 再谈一谈json序列化
Mar 16 Python
python hmac模块验证客户端的合法性
Nov 07 Python
通过实例解析python and和or使用方法
Nov 14 Python
pytorch中的model.eval()和BN层的使用
May 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
记录几个javascript有关的小细节
2007/04/02 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
js闭包的9个使用场景
2020/12/29 Javascript
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Python学习小技巧总结
2018/06/10 Python
python实现键盘控制鼠标移动
2020/11/27 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
你所在的项目是如何确定版本号的
2015/12/28 面试题
货物运输服务质量承诺书
2014/05/29 职场文书
初中班级口号
2014/06/09 职场文书
医德医魂心得体会
2014/09/11 职场文书
先进单位事迹材料
2014/12/25 职场文书
音乐剧猫观后感
2015/06/04 职场文书
合作合同协议书
2016/03/21 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS