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使用字典的嵌套功能详解
Feb 27 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
tensorflow 模型权重导出实例
Jan 24 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
python实现与redis交互操作详解
Apr 21 Python
Python pandas如何向excel添加数据
May 22 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
Python celery原理及运行流程解析
Jun 13 Python
python数字类型和占位符详情
Mar 13 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
Python绘制股票移动均线的实例
2019/08/24 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
汽车检测与维修专业求职信
2013/10/30 职场文书
运动会稿件50字
2014/02/17 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
小学生操行评语大全
2014/04/22 职场文书
软件售后服务方案
2014/05/29 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL