flask框架 视图函数当中 各种实用情况简单配置

1 建立连接

2 路由参数

3 返回网络状态码

4 自定义错误页面

5 重定向

6 正则url限制 和 url 优化

7 设置和获取cookie

  1. #coding:utf8
  2. # 导入flask
  3. from flask import Flask,abort,redirect,make_response,request
  4. from werkzeug.routing import BaseConverter
  5.  
  6. # Flask 接受一个参数__name__ 作用是指明应用的位置
  7. app = Flask(__name__)
  8.  
  9. '''
  10. 1 建立一个前后台链接
  11. 装饰器的作用是陆游映射到视图函数index
  12. 访问根目录就会进入index视图函数
  13. '''
  14. @app.route('/')
  15. def index():
  16. # 返回后会调用make_response
  17. return "你好 世界!"
  18.  
  19. '''
  20. 2 给路由传参数
  21. 传递的参数在<name>当中 这个变量名称也要传递给视图函数
  22. 可以在<int:name> 或者<string:name> 指定传递参数的类型
  23. 不指定类型默认使用string类型
  24. '''
  25. @app.route('/attr/<string:attr>')
  26. def attr(attr):
  27. return "hello,%s"%attr
  28.  
  29. '''
  30. 3 返回网络状态码的两种方式
  31. 01 return 字符串,状态码
  32. 02 abort(状态码)
  33. 200 成功
  34. 300 重定向
  35. 404 未找到
  36. 500 服务器内部错误
  37. '''
  38. #01 return 字符串,状态码 这种方式 可以返回不存在的状态码 前端依然能得到页面
  39. @app.route('/status')
  40. def status():
  41. # 用这种方式可以返回假的状态码 前端依然能够渲染
  42. return 'hello status',999
  43.  
  44. #02 利用abort(状态码) 进行返回状态码,只能写入真的状态码
  45. # 这个函数的作用是 自定义我们项目的 出错页面
  46. @app.route('/abort')
  47. def geive500():
  48. abort(500)
  49.  
  50. '''
  51. 4 捕获访问我们flask后台发生各种错误的情况
  52. 利用@app.errorhandler(500) 进行装饰 能截获500的response
  53. '''
  54. # 捕获500异常 函数当中接受到错误信息
  55. @app.errorhandler(500)
  56. def error500(e):
  57. return "您请求的页面后台发生错误!错误信息:%s"%e
  58. @app.errorhandler(404)
  59. def error404(e):
  60. return "您访问的页面飞去了火星!信息:%s"%e
  61.  
  62. '''
  63. 5 重定向
  64. 有两种方式:
  65. 01 redirect(url)
  66. 02 url_for(视图函数)
  67. '''
  68. @app.route('/redirect')
  69. def redir():
  70. return redirect('http://www.baidu.com')
  71.  
  72. '''
  73. 6 url正则
  74. 两个用途: 限制访问 和 优化访问路径
  75. 使用:
  76. 01首先要 定义一个继承自BaseConverter的子类
  77. 在子类里面调用父类的初始化方法
  78. 重写父类的变量
  79. 02然后 给applurl_map.converters 字典添加re健 和 我们自己写的类做val
  80.  
  81. 03最后 视图函数的app.route('路径<re(正则),变量名>')
  82. 变量名要传给视图函数做参数
  83. '''
  84. # 01 写一个继承自 BaseConverter的子类 相应的方法和属性要重写
  85. class Regex_url(BaseConverter):
  86. def __init__(self,url_map,*args):
  87. super(Regex_url,self).__init__(url_map)
  88. self.regex = args[0]
  89. # 02 添加re映射
  90. app.url_map.converters['re'] = Regex_url
  91. # 03 正则匹配参数
  92. # 利用正则对传入参数进行限制
  93. # 只有1到3位小写英文才能成功 否则都是404
  94. @app.route('/attr2/<re("[a-z]{1,3}"):attr>')
  95. def attr2(attr):
  96. return "hello %s"%attr
  97.  
  98. '''
  99. 7 设置cookie 和 获取 cookie
  100. 设置cookie:
  101. 利用 make_response() 拿到response对象
  102. response.set_cookie(key,val)
  103. 获取cookie:
  104. 利用request.cookies.get(key) 获取cookie
  105. '''
  106. # 设置cookie
  107. @app.route('/set_cookie')
  108. def setCookie():
  109. response = make_response('设置cookie')
  110. response.set_cookie('log','设置的cookie')
  111. return response
  112.  
  113. # 获取cookie
  114. @app.route('/get_cookie')
  115. def getCookie():
  116. log = request.cookies.get('log')
  117. return log
  118.  
  119. if __name__ == '__main__':
  120. # 执行后台服务器
  121. app.run(debug=True)

flask 视图函数的使用的更多相关文章

  1. Flask视图函数报fmalformed url rule错误的原因

    Flask视图函数报fmalformed url rule错误,原因可能是包含中文字符了 把标点符号都重新写一遍英文格式的,可能就不会报这个了

  2. Flask视图函数与普通函数的区别,响应对象Response

    视图函数与普通函数看似没什么区别,其实他们的返回值上有着很大的区别. from flask import Flask app = Flask(__name__) @app.route('/hello' ...

  3. Flask视图函数与模板语法

    1.Django中的CBV模式 ​ 2.Flask中的CBV和FBV def auth(func):     def inner(*args, **kwargs):         result =  ...

  4. Flask实战第6天:视图函数Response返回值

    视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...

  5. flask 在视图函数里操作数据库

    在视图函数里操作数据库 在视图函数里操作数据的方式和在python shell中的联系基本相同,只不过需要一些额外的工作.比如把查询结果作为参数 传入模板渲染出来,或是获取表单的字段值作为提交到数据库 ...

  6. flask 在视图函数中验证表单

    在视图函数中验证表单 因为现在的basic_form视图同时接受两种类型的请求:GET请求和POST请求.所以我们要根据请求方法的不同执行不同的代码.具体来说,首先是实例化表单,如果是GET请求,就渲 ...

  7. Flask如何给多个视图函数增加装饰器

    这几天在学习Flask, 遇到了些小问题,比如说怎么给多个视图函数加相同的装饰器 给单独一个视图函数加装饰器的话很简单,写一个装饰器,然后直接加在原装饰器下面即可,多个的话,会报这样一个错误: 这个异 ...

  8. Flask从入门到精通之在视图函数中处理表单

    在新版hello.py 中,视图函数index() 不仅要渲染表单,还要接收表单中的数据.更新后的index() 视图函数如下: @app.route('/') def index(): name = ...

  9. Flask之视图函数

    视图示例 @app.route('/hello') def hello(): return 'Hello World' if __name__ == '__main__': app.run() 特殊的 ...

随机推荐

  1. python笔记之异常

    异常 內建异常在exceptions模块内,使用dir函数列出模块的内容. 自定义异常类:继承基类Exception. 异常可以使用raise语句引发,可以使用try ... except ... e ...

  2. AngularJS - 常用方法汇总

    1. 数组元素的常用方法: http://www.cnblogs.com/diaosizhang/p/3729078.html 2. js的强大的splice方法  http://www.jb51.n ...

  3. java大数(BigInteger)

    JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的 ...

  4. Redis查询,设置超时时间

    1.定义 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  5. 【Saltstack】Saltstack简单说明

    [Saltstack] Saltstack是一个服务器集中管理中心平台,可以帮助管理员轻松的对若干台服务器进行统一操作.类似的工具还有Ansible,Puppet,func等等.相比于这些工具,sal ...

  6. 【Docker】Docker概述

    [Docker] Docker可以说是近几年非常热门的技术之一了.不管是别人敦促我还是从自己的想法来说,都觉得Docker这玩意儿肯定是要好好学习一下的,无奈没啥时间专门播出来给Docker,一直以来 ...

  7. 设计模式 --> (7)外观模式

    外观模式 外观模式为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 适用性 1.为一个复杂子系统提供一个简单接口. 2.提高子系统的独立性. ...

  8. Hook 无侵入式埋点(页面统计)

    一.技术原理 Method-Swizzling 黑魔法 方法交换(不懂的可以查) 二.页面统计 某盟页面统计SDK需要开发者在APP基类里实现ViewDidAppear和viewDidDisappea ...

  9. Node.js + gulp 合并静态页模版,文件更新自动热重载。浏览器可预览

    github地址:https://github.com/Liaozhenting/template 使用的是ejs的语法.其实你用什么文件后缀都可以,都是按ejs来解析. 模板文件放在componen ...

  10. JavaScript(第六天)【函数】

    函数是定义一次但却可以调用或执行任意多次的一段JS代码.函数有时会有参数,即函数被调用时指定了值的局部变量.函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值. 一.函数声明   函 ...