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编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
python 链接sqlserver 写接口实例
Mar 11 Python
PyQt5实现简单的计算器
May 30 Python
Python网络爬虫四大选择器用法原理总结
Jun 01 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
Python创建SQL数据库流程逐步讲解
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
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
Yii配置文件用法详解
2014/12/04 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
五段实用的js高级技巧
2011/12/20 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
chrome调试javascript详解
2015/10/21 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Django  ORM 练习题及答案
2019/07/19 Python
Python如何急速下载第三方库详解
2020/11/02 Python
python opencv肤色检测的实现示例
2020/12/21 Python
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
给老婆的保证书范文
2014/04/28 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
python神经网络ResNet50模型
2022/05/06 Python